我有两个字段“密码”(此字段在数据库中)和confirm_password(此字段不在数据库中)
好吧,我需要比较密码== confirm_password ..但我不知道为“confirm_password”创建自定义验证…需要在数据库中有这个字段吗?
我该怎么办?
通常,您可以通过$context参数访问
custom validation rule中的所有数据,其中它存储在数据键中,即$context [‘data’] [‘confirm_password’],然后您可以将其与当前字段值进行比较.
原文链接:https://www.f2er.com/php/136604.html$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'] ] ]);