CakePHP

CakePHP2で、テーブルを使わないがバリデーションしたい場合の方法。

CakePHP2で、テーブルを使わないけど、送信データをバリデーションしたい場合などがあると思います。
その場合の処理の方法を忘備録としてポストします。

テーブルのないモデルでバリデーションする

メールアドレスを入力するフォームが1個だけあり、入力されたメールアドレスが正しい書式であるかどうかをチェックするだけのページを例として考えます。

コントローラー

コントローラーは特に目新しいいことはしていません。
どのモデルを使うか、という指定だけ入れておきます。

モデル

今回の処理で重要なのはこちらのモデル。
上から説明すると、

public $useTable = false; で、DBは使わないという宣言をします。

次にスキーマを作成。
スキーマとは「データベースの構造」という意味の単語。
DBテーブルは使わないのですが、「仮想的にテーブルはこんな型ですよ」と宣言することでバリデーションを可能にする、という感じでしょうか。

あとはいつもの様に、バリデーションをするだけです。

もうちょっとややこしいかと思っていましたが、そんなに難しいことでもないですね。
さすがCakePHP。

-CakePHP
-, , , ,