Проверка Kohana 3.1 orm при обновлении данных пользователя - PullRequest
1 голос
/ 01 июля 2011

Я запускаю форму update_user через

$user = ORM::factory('user', $id)->update_user($this->request->post(), array(
  'username',
  'password',
  'email'
));

И предварительно заполнив поля формы имя пользователя и адрес электронной почты текущим пользователем, и оставив пароль пустым, чтобы его можно было «изменить»

Но при отправке он получает все сообщения проверки от create_user из модели 'user'

Итак, я получаю:

"username already taken"
"email address already taken"
"password can't be blank"

Кто-нибудь знает, как вы думаете обойти это?

1 Ответ

3 голосов
/ 01 июля 2011
    $user = $this->get_user();

    if ( ! $user->loaded())
    {
        throw new Exception_Deny;
    }

    if ($_POST)
    {
        try
        {
            $user->update_user($_POST, array(
                'username',
                'email',
                'password',
            ));
        }
        catch (ORM_Validation_Exception $e)
        {
            $this->add_errors($e);
        }
    }

    $this->content = View::factory('user/update');

работает абсолютно корректно - выдает ошибку только тогда, когда я пытаюсь назначить существующее имя пользователя или пароль другого пользователя ... Проверьте все, что вы переопределили в классах ORM или Model_User.

...