データを保存せずバリデーションのみ行う

Pocket

CakePHPはModelの機能として保存するデータのバリデーションを行う機構が整備されている。ここでは、Model::save()を実行せずにバリデーションのみを行う方法を書く。

まずは、Modelにバリデーションしたいフィールドのチェック内容を定義する

通常はModel::save()を実行してデータが保存される前にバリデーションの定義に従ったチェック処理がフックされ実行される。この場合当然バリデーションの結果がTrueであればデータが保存される。

データを保存せずにデータの正当性のみをチェックしたい場合は以下の様にController内で下記の様に行う事ができる。

$this->Model->set($data);
$this->Model->validates();

要するに、まず、Model::set($data) でバリデートしたいデータをModelに設定して、Model::validates() で実行。validates()の戻り値を if文で判定すれば正当なデータであるかどうかをチェックできる。

バリデーションエラーの詳細を知りたい場合 → こちら

記事が役に立ったらぜひシェアをお願いします。

Pocket

One thought on “データを保存せずバリデーションのみ行う”

Comments are closed.