我有两个领域的“密码”(此字段是在数据库中)和confirm_password(此字段是不是在数据库中)CakePHP的3 - 比较密码
好吧,我需要的,如果比较密码== confirm_password。 。但我不知道创建一个自定义验证“confirm_password”...需要在数据库中有这个字段?
我该怎么办?
我有两个领域的“密码”(此字段是在数据库中)和confirm_password(此字段是不是在数据库中)CakePHP的3 - 比较密码
好吧,我需要的,如果比较密码== confirm_password。 。但我不知道创建一个自定义验证“confirm_password”...需要在数据库中有这个字段?
我该怎么办?
一般来说,你可以通过$context
说法,在那里它存储在data
关键,即$context['data']['confirm_password']
,然后你可以比较当前的字段值访问一个custom validation rule的所有数据。
$validator->add('password', 'passwordsEqual', [
'rule' => function ($value, $context) {
return
isset($context['data']['confirm_password']) &&
$context['data']['confirm_password'] === $value;
}
]);
话虽这么说,最近一个compareWith
验证规则被引入其中正是这么做的。
https://github.com/cakephp/cakephp/pull/5813
$validator->add('password', [
'compare' => [
'rule' => ['compareWith', 'confirm_password']
]
]);
现在有在验证类中的方法调用sameAs的,3.2版本或刨丝器。
$validator -> sameAs('password_match','password','Passwords not equal.');
看到API
我将如何设置的消息? “Password Invalid”使用“compareWith” – TMoraes 2015-02-09 18:53:34
好的,只是'message'=>'密码无效'..但是我想知道,我怎样才能使这个消息在下面显示confirm_password字段?'因为它显示了下面的密码字段.. – TMoraes 2015-02-10 00:39:33
@ThiagoMoraes简单地为'confirm_password'字段添加相同的规则,并与'password'进行比较。 – ndm 2015-02-10 04:12:26