Русскоязычный форум, посвященный фреймворку Kohana http://forum.kohanaframework.su/ |
|
Валидация полей pass и pass_conf, koh. 3.2 как? http://forum.kohanaframework.su/viewtopic.php?f=31&t=225 |
Страница 1 из 2 |
Автор: | pimpys [ 23 июн 2012, 10:39 ] | ||
Заголовок сообщения: | Валидация полей pass и pass_conf, koh. 3.2 как? | ||
Здраствуйте! Как сделать эту тупую валидацию что мне не возвращало масив? Подробное описание: При нажатии на кнопку отправить выдает вместо сообщения array();, почему я так и не понял, искал, искал так и не нашол. Дума что дело в методе: "get_password_validation()", но там по логике всё правильно прописанно. Прикреплю скрин* Что мне делать?:) ЗЫ: Это стандартный модуль Auth Спасибо.
|
Автор: | pimpys [ 23 июн 2012, 10:56 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
Update: Кстате даже когда поле password_confirm пусто, то тоже возвращает array(); |
Автор: | qed [ 23 июн 2012, 19:07 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
А что находится в этом массиве, он точно пустой? Покажите код, который всё это дело обрабатывает. |
Автор: | pimpys [ 23 июн 2012, 21:00 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
qed писал(а): А что находится в этом массиве, он точно пустой? Покажите код, который всё это дело обрабатывает. Еслиб я знал что в массиве, яб не спрашивал наверное, нет он не пустой. Как его проверить я не знаю. Код? Держите: public function action_add(){ //Нажата кнопка if(!empty($_POST)){ //Выбор из массива $POST = Arr::extract($_POST, array('username', 'password', 'password_confirm', 'email', 'admin')); $user = ORM::factory('user'); try{ //Создать пользователя $user->create_user($_POST, array( 'username', 'password', 'email', )); if(empty($_POST['admin'])){ $role = ORM::factory('role')->where('name', '=', 'login')->find(); $user->add('roles', $role); }else{ $role = ORM::factory('role')->where('name', '=', 'login')->find(); $user->add('roles', $role); $role = ORM::factory('role')->where('name', '=', 'admin')->find(); $user->add('roles', $role); } $this->request->redirect('/dmn/users'); }catch(ORM_Validation_Exception $exc){ $errors = $exc->errors('auth'); } } //////// var_dump($errors) возвращает: //// array(3) { ["username"]=> string(61) "Поле: 'Логин' не может быть пустое!" ["email"]=> string(58) "Поле: 'Е-mail' не может быть пустое!" ["_external"]=> array(2) { ["password"]=> string(94) "Поле: 'password' должно быть не меньше 8 символов в длину!" ["password_confirm"]=> string(81) "Поле: 'password confirm' должно совпадать с password confirm!" } } |
Автор: | qed [ 23 июн 2012, 21:16 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
Код:
Я так понимаю, тут вы получаете ошибки, попробуйте сделать print_r($errors); Сори, var_dump сразу не заметил. Ну вот, в массиве с ошибками у вас есть подмассив "_external", обработайте его отдельно при выводе ошибок. |
Автор: | pimpys [ 23 июн 2012, 21:22 ] | ||
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? | ||
qed писал(а): Код:
Я так понимаю, тут вы получаете ошибки, попробуйте сделать print_r($errors); Яж написал результат var_dump'a!!! 1 проблему решил сейчас скрин прикреплю! На скрине видно что поле проверяет само себя! Хотя в методе написано так: public static function get_password_validation($values) { return Validation::factory($values) ->rule('password', 'min_length', array(':value', 8)) ->rule('password_confirm', 'matches', array(':validation', ':field', 'password')); }
|
Автор: | pimpys [ 23 июн 2012, 21:27 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
qed писал(а): есть подмассив "_external", обработайте его отдельно при выводе ошибок. Как? |
Автор: | qed [ 24 июн 2012, 02:51 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
Хм, интересно.. А если поля password и password_confirm совпадают, ошибка валидации появляется? Может что-то не так в файле с текстами ошибок? |
Автор: | mamahtehok [ 24 июн 2012, 19:35 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
Вам нужно реализовать обработку массива ошибок например так Код:
|
Автор: | pimpys [ 25 июн 2012, 13:54 ] |
Заголовок сообщения: | Re: Валидация полей pass и pass_conf, koh. 3.2 как? |
mamahtehok писал(а): Вам нужно реализовать обработку массива ошибок например так Обработка ошибок была:) Но без is_array() Спасибо помогло. Полазви и поискав ответ на свой вопрос, нашол интересную тему, там моя проблема и описывалась. Сказали что броблема в валидации и дали супер мудреный способ решения. Но то такое:) А теперь у меня еще один вопрос как теперь labels() здалать на русском?:) В модели в public function labels() прописано норм, а в вид выдаёт в виде "так как есть". Вот поэтому и надо делать, по супер мудрёному способу:( |
Страница 1 из 2 | Часовой пояс: UTC + 4 часа [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |