Intereting Posts
Обновление до PHP 5.3 с отключенными функциями предупреждения PDO :: PARAM для дат? Согласование множественного появления одного и того же символа с preg_match Что такое переадресация вызовов и статические вызовы в PHP или в противном случае поздняя статическая привязка? PHP-скрипт не запущен в браузере Легкий способ применения функции к массиву PHP: встроенная функция для проверки того, равны ли два значения массива (игнорирование порядка) Где вы вкладываете свои зависимости? Захват ошибок cURL от Guzzle php / mysql – подготовленная в PDO вставка, не работает, и никаких сообщений об ошибках CakePHP: нумерованные разбитые на результат результаты Как взорвать строку справа налево? Как я могу использовать «Injection Dependency» в простых функциях php, и должен ли я беспокоиться? php получает переменные в качестве ключа без присвоенного значения PHP получает код ответа HTTP-заголовка без cURL

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