複数のバリデーションを実行する CakePHP
前提
posts テーブルは下記の通り
id | title | created_at | updated_at |
---|---|---|---|
やりたいこと
- プロパティ title に以下の 2 validation が実行されること
- アルファベットもしくは数字であること
- 8 - 255 文字以内であること
方法
app/Model/Post.php
1 <?php 2 class Post extends AppModel { 3 public $validate = array( 4 'title' => array( 5 'alphaNumeric' => array( 6 'rule' => 'alphaNumeric', 7 'message' => 'Fill in alphabet or numeric', 8 ), 9 'between' => array( 10 'rule' => array('between', 8, 255), 11 'message' => 'Fill in from 8 to 255', 12 ), 13 ), 14 ); 15 } 16 ?>
一般化すると
1 <?php 2 class モデル名 extends AppModel { 3 public $validate = array( 4 'プロパティ名' => array( 5 'バリデーション名1' => array( 6 'rule' => 'バリデーション1', 7 'message' => 'メッセージ1', 8 ), 9 'バリデーション名2' => array( 10 'rule' => バリデーション2 11 'message' => 'メッセージ2', 12 ), 13 ), 14 ); 15 } 16 ?>