@Chetson
front-end разработчик

Как обработать ошибки валидации Kohana 3.3 при регистрации пользователя?

Имеется установленая Kohana 3.3 на Apache server под Xubuntu 14.10
Так же написан контроллер application/classes/Controller/User.php
Есть небольшие обертки всего приложения для более удобного шаблонирования по-этому наследуются контроллеры не по стандартной схеме, но никогда мне это не мешало.
class Controller_User extends Controller_System_Template


Имеется метод
public function action_signup()
  {
    // если юзер авторизован
    if($this->_auth->logged_in())
    {
      // отправляем его на главную
      $this->redirect("/");
    }

    // если есть данные
    if ($post = $this->request->post())
    {

      try {

        $user = ORM::factory('User')->create_user($post, array('username','email','password'));
        $user->add('roles',ORM::factory('Role',array('name'=>'login')));

        mail($post['email'],
        'Регистрация на сайте SiteName',
        'Вы были зерегестрированы на сайте SiteName, ваш логин: '.$post['username'].' Ваш пароль: '.$post['password']);

        $this->redirect("/");

      }
      catch (ORM_Validtion_Exception $e)
      {
        $errors = $e->errors('validation');
        return FALSE;
      }
    }

    $this->template->content = View::factory('partials/users/signup');
  }


Собственно в чем вопрос.
Как можно обработать ошибки при регистрации.
Мне выдает все-время ошибку при сабмите формы, все поля заданы правильно
ORM_Validation_Exception [ 0 ]: Failed to validate array


Ругается на 1276 строчку:
1271 		$array = $this->_validation;
1272 
1273 		if (($this->_valid = $array->check()) === FALSE OR $extra_errors)
1274 		{
1275 			
1276 			$exception = new ORM_Validation_Exception($this->errors_filename(), $array);
1277 
1278 			if ($extra_errors)
1279 			{
1280 				// Merge any possible errors from the external object
1281 				$exception->add_object('_external', $extra_validation);


Уже расковырял внутренности, уже создал файл с массивом ошибок application/messages/validation/user.php
<?php defined('SYSPATH') OR die('No direct script access.');

return array(

	'username' => array(
    'not_empty' => 'Поле должно быть не пустым',
    'max_length' => 'Превышена длина поля',
  ),

	'password' => array(
		'not_empty' => 'Пароль задать надо',
	),

	'email' => array(
		'not_empty' => 'Пустое поле',
    'email' => 'Ошибка почты',
	),

);

Но проблему это не решило - ошибка остается той же самой.
Пробовал с большой буквы написать - на Линуксе все-таки придирается PHP, пробовал по стандарту сделать. тоже не получилось.
  • Вопрос задан
  • 892 просмотра
Решения вопроса 1
@Chetson Автор вопроса
front-end разработчик
Ошибка была в строчке
catch (ORM_Validtion_Exception $e)
Банальная опечатка
catch (ORM_Validation_Exception $e)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@entermix
А вы проверяли то, что в находится в $post после этой строчки ?
if ($post = $this->request->post())
    {
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы