CakePHPのバリデーションを状況によって使い分ける方法

確認画面とDBへの登録時で、異なるvalidationルールを設ける必要があり、調べてみた。
以下の方法で可能。

モデル側の記述

class Hoge extends AppModel
{

var $validate = array(
‘title’ => array(
‘rule’ => ‘notEmpty’,
‘message’ => ‘タイトルは必須入力項目です。’,
),
);

var $validate_test = array(
‘title’ => array(
‘rule’ => array(‘maxLength’, 50),
‘message’ => ‘タイトルは50文字以内で入力してください。’,
),
);
}

コントローラー側での切り替え
$this->Hoge->validate = $this->Hoge->validate_test;
$this->Hoge->validates();

動作した。

こちらを参考にさせていただきました。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする