Русскоязычный форум, посвященный фреймворку Kohana
http://forum.kohanaframework.su/

Сообщения об ошибках валидации
http://forum.kohanaframework.su/viewtopic.php?f=21&t=221
Страница 1 из 1

Автор:  admin [ 17 июн 2012, 03:15 ]
Заголовок сообщения:  Сообщения об ошибках валидации

В уроке "Сообщения об ошибках валидации" я начну рассказывать как выводить красивые сообщения об ошибках на примере нашей формы для отправки комментариев к статьям.
Урок находится здесь:
http://kohanaframework.su/advanced/validation_errors

Автор:  -JSergRu- [ 22 июн 2013, 07:01 ]
Заголовок сообщения:  kohana ORM_Validation_Exception

Модель Sort
Код:
         
$model = ORM::factory('Test');
$model->data = '';      
try {
   $model->save();
} catch (ORM_Validation_Exception $e) {
   var_dump($e->errors());
}

Модель Test
Код:
class Model_Test extends ORM
{   
   ...
   ...
   ...

   public function rules()
   {
      return array(
         'data' => array(
            array('not_empty'), // ( ! empty() )
      );
   }

   ...
   ...
   ...

Результат
Код:
array(1) {
  ["data"]=>
  array(2) {
    [0]=>
    string(3) "not_empty"
    [1]=>
    array(1) {
      [0]=>
      string(33) ""
    }
  }
}

А вот если
Модель Sort
Код:
         
$model = ORM::factory('Test');
$model->data = '';      
try {
   $model->save();
} catch (ORM_Validation_Exception $e) {
   var_dump($e->errors('myerr')); // <---------
}

Тогда Результат
Код:
array(1) {
  ["data"]=>
  string(18) "data must not be empty"
}

А вот что написать вместо myerr чтобы выводить ошибки из application/messages/~myerr.php и какой путь должен быть у файла myerr.php не могу разобраться (
КО 3.3

Автор:  WinterSilence [ 22 июн 2013, 18:23 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

эээ.. вообще-то var_dump($e->errors('myerr')); это и значит выводить ошибки из этого файла путь также как и в остальных случаях $e->errors('ru/myerr') или $e->errors('ru-myerr') (точно не помню, но скорее всего первое) это ввод из папки application/messages/ru/myerr.php

Автор:  -JSergRu- [ 23 июн 2013, 02:35 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

:?
Может у меня файл myerr неверный?
Код:
<?php defined('SYSPATH') OR die('No direct script access.');
return array(
   'data' => array(
      'not_empty' => 'свой текст',
   ),
);

Автор:  WinterSilence [ 23 июн 2013, 02:56 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

system\messages\validation.php

Автор:  -JSergRu- [ 23 июн 2013, 04:30 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

:!: Бабах!!!
;) Только что нашел наипростейшее решение, какое может быть в данном случае
:arrow: Обращу внимание на то что это, судя по всему, особенность работы с ORM.
Цитата:
можно использовать и $user->validation()->errors('validation')
источник ORM в Kohana v3.1
и пару ссылок для желающих изучить подробно эту проблему
8-)

Автор:  WinterSilence [ 23 июн 2013, 13:59 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

-JSergRu- это те же яйца если ты еще не понял...

Автор:  -JSergRu- [ 24 июн 2013, 05:47 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

WinterSilence писал(а):
-JSergRu- это те же яйца если ты еще не понял...

почему сразу не предложил эти яйца?
почему-то те же яйца ($e->error('myerr')) в одном случае работают (не ORM) а в другом (ORM) не работают
:D доказано - это не те же яйца

Автор:  Sergey [ 28 июн 2013, 20:01 ]
Заголовок сообщения:  Re: Сообщения об ошибках валидации

Вывод один - нужно больше читать :)

Страница 1 из 1 Часовой пояс: UTC + 4 часа [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/