Kohana v3.1.0 ORM _ignored_columns – теперь, когда он ушел, что мне делать вместо этого?

Похоже, что в v3.1.0 ORM _ignored_columns свойство _ignored_columns было удалено.

Каков рекомендуемый метод работы с полями, которые не находятся в базах данных? Случай, который у меня есть сейчас, – password_confirm, где пароль – это поле, но мы требуем, чтобы пользователь дважды вводил пароль.

Вы можете передать дополнительный объект проверки для сохранения, создания и обновления. Таким образом, ваш пример будет выглядеть так:

 /** * Password validation for plain passwords. * * @param array $values * @return Validation */ public static function get_password_validation($values) { return Validation::factory($values) ->label('password', 'password') ->label('password_confirm', 'repeat password') ->rule('password', 'not_empty') ->rule('password', 'min_length', array(':value', 8)) ->rule('password_confirm', 'matches', array(':validation', ':field', 'password')); } /** * Create user account * * @param array $values * @param array $keys * @throws ORM_Validation_Exception */ public function create_user($values, $keys) { $external = Model_User::get_password_validation($values); $this->values($values, $keys); return $this->create($external); } 

Обратите внимание, как проверка пароля передается в метод create.

Значение $keys указывает, какие значения должны быть сохранены в модели. «password_confirm» не было в этом списке, поэтому оно игнорируется. Эта функция также связана с безопасностью, вы не хотите, чтобы пользователи вручную устанавливали идентификатор в своем запросе POST.

Затем вы можете создать пользователя, вызвав create_user :

 $user->create_user($_POST, array('username', 'email', 'password'));