CakePHPで開始日時と終了日時があって、終了日時が開始日時より古い日付になっているかどうかのチェックをする場合、そのモデルの$validateメンバ変数だけではどうにもならないため、beforeValidateの中に定義してあげます。
1 2 3 4 5 6 7 8 9 |
public function beforeValidate() { $this->validate['from_date'] = array( 'checkdatetofrom' => array( 'rule' => array('checkDateToFrom', $this->data["to_date"]), 'message' => '開始日時と終了日時の関係が逆です', 'allowEmpty' => true, ), ); } |
こんな感じにしてあげれば、別の入力値を使ったバリデーションが作れます。
$this->data[“to_date”]はどこから出てきたんだって思うかもしれませんが、これは$this->モデル名->set($this->request->data);みたいにバリデーションする前にセットすると思いますが、$this->dataはそのモデルに関する変数値が入っています。var_dumpなりで見てみると良いかもです。
また、checkDateToFromというのは独自バリデーション関数の例で、以下のような形で別途定義してあげてください。
public function checkDateToFrom($value,$value2){
・・・・
}