Правило проверки CakePHP для соответствия field1 и field2 - PullRequest
1 голос
/ 22 июля 2011

Я делаю форму для сброса пароля, которая содержит два поля: пароль1 и пароль2.Пользователь вводит свой новый пароль, а затем повторно вводит новый пароль.

Я не уверен, как создать правило проверки, которое будет сравнивать два значения из полей и проверять, совпадают ли они..

Ответы [ 3 ]

6 голосов
/ 22 июля 2011

ИМХО в этом случае сложнее создать отдельное правило.Вы можете, если вы хотите закодировать «чистый» CakePHP, но проще просто сравнить поля в контроллере и сделать недействительными одно из них вручную, если они не совпадают:

if( $this->data[ 'User' ][ 'password1' ] != $this->data[ 'User' ][ 'password2' ] ) {
    $this->User->invalidate( 'password2', "The passwords don't match." );
}
4 голосов
/ 22 июля 2011

если вы используете компонент Auth, вам нужно хешировать второй пароль в контроллере, потому что пароль будет автоматически хешироваться.

Чтобы сравнить 2 поля, вам нужно написать собственное правило проверки: http://bakery.cakephp.org/articles/aranworld/2008/01/14/using-equalto-validation-to-compare-two-form-fields (читайте также комментарии, потому что само учебное пособие довольно старое)

0 голосов
/ 23 июля 2011

Просто я написал такое поведение 2 дня назад: https://github.com/dereuromark/tools/blob/master/Model/Behavior/PasswordableBehavior.php

пример кода, как его использовать: http://www.dereuromark.de/2011/08/25/working-with-passwords-in-cakephp/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...