CakePHP验证规则匹配field1和field2

时间:2011-07-22 15:56:08

标签: validation cakephp passwords

我正在制作密码重置表单,其中包含两个字段:password1和password2。用户输入新密码,然后重新输入新密码。

我不确定如何制作一个验证规则来比较字段中的两个值,看看它们是否相同。

3 个答案:

答案 0 :(得分:6)

恕我直言,在这种情况下创建一个单独的规则比值得多。你可以,如果你想编写“纯粹的”CakePHP代码,但是比较控制器中的字段更容易,如果它们不匹配则手动使其中一个字段无效:

if( $this->data[ 'User' ][ 'password1' ] != $this->data[ 'User' ][ 'password2' ] ) {
    $this->User->invalidate( 'password2', "The passwords don't match." );
}

答案 1 :(得分:4)

如果您使用的是Auth组件,则需要在控制器中散列第二个密码,因为密码将自动进行哈希处理。

要比较2个字段,您需要编写自定义验证规则:http://bakery.cakephp.org/articles/aranworld/2008/01/14/using-equalto-validation-to-compare-two-form-fields(也请阅读评论,因为教程本身有点旧)

答案 2 :(得分:0)