在用户注册表单中,我有密码和密码2,因此用户必须输入密码 2x,并且在他/她注册之前它们必须彼此相等。在这种情况下,验证规则可以正常工作。在更新用户信息表单中。我将密码和密码 2 都设置为空白,这样如果用户没有在第一个密码字段或密码 2 字段中输入值,那么系统只会将当前密码保存在我的用户模型中的临时变量中。到目前为止,一切都很好。我想要的是触发与注册时相同的所有验证规则,但前提是用户在第一个密码字段中输入了一个值,否则留空并忽略。所以我想这是某种条件验证。
在用户模型中:
$validate = array(
'password' => array(
'password_notempty'=>array(
'rule' => 'notEmpty',
'message' => 'Required field',
'on' => 'create')
,
'password_between'=>array(
'rule' => array('between', 5, 15),
'message' => 'Between 5 to 15 characters',
'on' => 'create')
,
'password_alphanumeric'=>array(
'rule' => 'alphaNumeric',
'message' => 'Characters and numbers only',
'on' => 'create')
),
'password2' => array(
'password2_isequal' =>array(
'rule' => array('comparePasswords','password'),
'message' => 'Must be same value as password.')
)
);
有人对如何实现这一点有想法吗?