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サイト制作の実績・料金を見る

この記事のシェア数

Kazuya Takato
Kazuya Takato 取締役 COO 兼 CTO / DX事業本部長 / 高遠 和也

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

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