昨日、この本を読み返してみました。
CakePHP2 実践入門 (WEB+DB PRESS plus)
- 作者: 安藤祐介,岸田健一郎,新原雅司,市川快,渡辺一宏,鈴木則夫
- 出版社/メーカー: 技術評論社
- 発売日: 2012/09/29
- メディア: 単行本(ソフトカバー)
- 購入: 5人 クリック: 165回
- この商品を含むブログ (8件) を見る
去年購入した本で、一読はしたことがありますが、全然頭に入っていなかったと思いました。
やっぱり本だけじゃ学べないのね。(´・ω・`)
話さておき、本題。
問い合わせフォームとかで、モデルのバリデーションを使いたいんだけど、でもテーブルは作成したくない場合、CakePHPでそれができます!
モデルの変数 $_schema を利用します。
まずはバリデーション用のモデル.phpを作成してください。そして、下記のようにスキーマとバリデーションを記述しましょう。
- TestValidate.php
<?php App::uses('Model', 'AppModel'); class TestValidate extends AppModel { // DBテーブルを使わないようにする public $useTable = false; // DBを使わずにバリデーションしたいので、スキーマを定義 public $_schema = array( 'email' => array( 'type' => 'string', 'length' => 255 ) ); // バリデーションの設定 public $validate = array( 'email' => array( 'rule' => 'email', 'allowEmpty' => false, 'message' => 'mailのフォーマット登録してくれお(^ω^# ' ) ); }
Controllerと、Viewはテーブルが存在しているときと同じ使い方でおk!(これがMVCの本気・・・・・!)
値のチェックを自分でやるとすごい面倒くさいんだけど、こんなふうに記述するとフレームワークがやってくれるので楽ですね。
でも、一度は自分で組んでみて理解することをオススメします。(すごい面倒くさいですが)
以上。