Modelに下のように複数バリデーションが書いてある場合に、一定の条件のときだけ
一定の条件だけユニークのチェックをはずしたかった。
var $validate = array(
'mail_add' => array(
'rule1' => array('rule' => array('email'),'message'=>'メールアドレスの形式をご確認ください'),
'unique' => array('rule' => array('unique'),'message'=>'そのメールアドレスは登録済みのため使用できません'),
'required' => array('rule' => VALID_NOT_EMPTY,'message'=>'メールアドレスは必須入力です'),
),
);
具体的に言うと、新規登録の場合はユニークのチェックをするが、
編集画面から来たときはユニークのチェックをさせない動きにしたかった。
コントローラー側で
unset($this->Model->validate['mail_add']['unique']);
とやってから、バリデーションをすると、ユニーク以外のバリデーションだけ実行してくれた。
正しいやり方なのかはわからにけど、とりあえずメモっとく。
LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。