CakePHPのバリデーションについてメモ

Kazuya Takato

Kazuya Takato

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サイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。2023年7月には社長室室長に就任にし、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担っています。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL