数値系バリデーション
    CakePHP 2になっていくつか数値用バリデーションルールが追加されています。
数値用 (コア)バリデーション
- decimal - 十進数であること
 - numeric - 数値であること
 - naturalNumber - 自然数(正の整数)であること
 - range - 数値の範囲(超え・未満)であること
 - comparison - 大・小・一致・不一致の比較に合致すること
 
5つともnotEmptyとなるので、必須としない場合は'allowEmpty' => trueを追加する必要があります。
decimal
十進数であることであることを検証します。
decimal(integer $check, integer $places = null, string $regex = null)
小数点以下の桁数を限定する場合は第2引数($places)で指定します。
第3引数で正規表現を指定した場合は、優先してそれを使用してバリデーションが行われます。
public $validate = array(
    'height' => array(
        'rule' => array( 'decimal', 2),  // 小数点以下桁数を限定
        'message' => '小数点以下2桁まで入力して下さい。',
        'allowEmpty' => true             // 空白許可
    ),
);
2.4.6 以降 localeconvから各国の「桁区切り文字」・「小数点(文字)」を取得し、それぞれ"空文字"、"カンマ"へ置換してバリデーションを行うようになりました。
numeric
数値であることを検証します。
numeric(string $check)
is_numericを使用して数値であることを検証します。なので、数値だけでなく16進数なども通ります。
public $validate = array(
    'cars' => array(
        'rule'    => 'numeric',
        'message' => 'Please supply the number of cars.',
        'allowEmpty' => true             // 空白許可
    )
);
naturalNumber
自然数(正の整数)であることを検証します。 (2.2 以降)
naturalNumber(mixed $check, boolean $allowZero = false)
第2引数($allowZero)で0(ゼロ)を許可(true)するか否か(false)を設定できます。
public $validate = array(
    'wheels' => array(
        'rule'    => 'naturalNumber',
        'message' => 'Please supply the number of wheels.',
        'allowEmpty' => true             // 空白許可
    ),
    'airbags' => array(
        'rule'    => array( 'naturalNumber', true),  // 0(ゼロ)を許可
        'message' => 'Please supply the number of airbags.',
        'allowEmpty' => true             // 空白許可
    ),
);
range
数値が設定された範囲内であることを検証します。
range(string $check, integer $lower = null, integer $upper = null)
第2引数($lower)に最小値、第3引数($upper)に最大値を設定して下さい。
バリデーションは、$lower超え、$upper未満となり、$lower・$upperの場合はエラーとなります。
public $validate = array(
    'number' => array(
        'rule'    => array( 'range', -1, 11),  // マイナス1より大きく11より小さい
        'message' => 'Please enter a number between 0 and 10',
        'allowEmpty' => true             // 空白許可
    )
);
comparison
数値の大小の比較を行い検証を行います。
comparison(mixed $check1, string $operator = null, integer $check2 = null)
第2引数($operator)に比較方法を指定います。
'is greater' (~より大きい)、'is less' (~より小さい)、'greater or equal' (~以上)、'less or equal' (~以下)、'equal to' (~と等しい)、'not equal' (~と等しくない)
Models > Data Validation
関連記事
-  
                            
                              - 
              
HttpSocketを使用してリクエスト送信
CakePHPには、Webサービスへのリクエスト送信のためのHttpSocketクラスが用意されています。 HttpSocket get HTTP GETリクエストを発行します。デモ H
 
-  
                            
                              - 
              
CakeEmailでメール送信(@gmail)
CakePHP 2になって追加されたクラスCakeEmailがシンプルに使えます。これを使用してメール送信を行う処理を実装してみました。 CakeEmailクラスの読み込み /app/Config
 
-  
                            
                              - 
              
(メール・URL・電話・郵便・IP) データ バリデーション
今回は、プロフィール情報に使用されるデータに絞ったバリデーションルールです。 バリデーションルール 以下の5つのバリデーションルールがコアに用意されています。 email メールアドレス
 
-  
                            
                              - 
              
パス定数と変更方法やURLの取得
CakePHPは基本的にはディレクトリそのまま配置することで構築が可能ではありますが、設定パスを変更することでセキュリティに考慮した構成にすることや運用性をもたせたものにすることが可能になります。
 
-  
                            
                              - 
              
独自のバリデーションルールを作成
CakePHPで組み込みバリデーションルールをつくる方法は、正規表現を定義する方法と独自メソッドを定義する方法の2つがあるようです。 参考 Custom Validation Rules 正規
 
-  
                            
                              - 
              
ハッシュ関数の選択とハッシュ化処理
CakePHPでは、ログイン時にはpasswordを自動的にハッシュ化して認証を行ってくれますが、そのパスワードを登録する際は、明示的にハッシュ化する必要があります。 ハッシュ関数の選択 ハッ
 
-  
                            
                              - 
              
複数ファイルアップロードフォーム
CakePHP 2.0からはHTML5が標準でサポートとなり、複数ファイルアップロードのためのフォーム記述が容易になりました。 View (ビュー) 配列 Array (
 
-  
                            
                              - 
              
バリデーション前後に処理を追加できる「beforeValidate」「afterValidate」
CakePHPでは、「beforeValidate」「afterValidate」というバリデーション処理の前後で追加の処理を実装できるコールバック関数が用意されています。 beforeVali
 
-  
                            
                              - 
              
Js/Cssファイルの読み込みや出力する方法
CakePHPのHTMLヘルパーにはjsファイルやcssファイルを読み込むためのメソッドが用意されています。ファイルを読み込むのに加えて、出力先を複数指定できるようになっています。 また、インライン
 
-  
                            
                              - 
              
RSSフィードの取得
コンロトーラ public function getrssfeed() { try { $newsItems = $this->Rss->read( 'http://
 


        
        
        
        
        
        
        
        
Comment
RT @kwski3: CakePHP 2.4 - 数値系バリデーション http://t.co/AoSZtaTQsx ブログ
数値系バリデーション #CakePHP #trick876 #validation
http://t.co/hx5joTxhtC