ユーザー登録フォームには、パスワードとパスワード2があるため、ユーザーはパスワード2xを入力する必要があり、登録する前に互いに等しくする必要があります。この場合、検証ルールは正常に機能します。ユーザー情報の更新フォーム。password と password2 の両方を空白に設定しているため、ユーザーが最初の password フィールドまたは password2 フィールドに値を入力しない場合、システムはユーザー モデルの一時変数に保存した現在のパスワードを単純に保存します。ここまでは順調ですね。私が望むのは、登録時と同じ検証ルールをすべてトリガーすることですが、ユーザーが最初のパスワードフィールドに値を入力した場合にのみ、それ以外の場合は空白のままにして無視します。したがって、これはある種の条件付き検証だと思います。
ユーザーモデルでは:
$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.')
)
);
これを達成する方法についてのアイデアはありますか?