Intereting Posts
Сериализация / Deserialize / OOP Является ли FILTER_VALIDATE_URL слишком строгим? двоичный параметр данных в cURL Получение полного пути поля загрузки файла в форме в PHP PDFLib, дающий ошибку неперехваченного исключения Шаблоны проектирования. Как создать объект базы данных / соединение только при необходимости? Как сохранить китайский или другой иностранный язык, как они есть, вместо того, чтобы превращать их в коды? Объединить или объединить массив вроде этого? на PHP Как показать другой контент посетителям сайта из определенной страны на PHP? Имена файлов автоматического прироста PHP Переключатель vs if statements Как объединить значения из нескольких строк с одним и тем же идентификатором в запятую, разделенные уникальным идентификатором Случайный друг с использованием FQL Что заставляет SQL Server возвращать сообщение «Заявление завершено»? Невозможно получить доступ к моим данным профиля при доступе к API google-people

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'));