我正在制作密码重置表单,其中包含两个字段:password1和password2。用户输入新密码,然后重新输入新密码。
我不确定如何制作一个验证规则来比较字段中的两个值,看看它们是否相同。
答案 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)