Имеется установленая 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, пробовал по стандарту сделать. тоже не получилось.