libro
www.tuyano.com
初心者のためのCakePHP2 プログラミング入門

バリデーションを使おう! (4/5)

作成:2011-12-12 08:05
更新:2011-12-12 08:05

■利用可能なバリデーション・ルール

利用可能なバリデーションにはどのようなものがあるのでしょうか。以下に利用可能なバリデーション・ルールを整理していきましょう。

alphaNumeric
半角英数字のみ入力可能にするものです。オプションなどは特にありません。

between
一定範囲内の整数のみ入力可能にするものです。これは入力の最小値と最大値の値をあわせて指定する必要があるため、ruleの指定には、’rule’=>array(‘between’,最小値,最大値)といった形で配列を使って指定をします。例えば「5〜10の値」ならば、’rule’=>array(‘between’,5,10)となります。

blank
空(未入力)を許可するかどうかを指定します。これを指定すると未入力を許可します。

boolean
真偽値のみ入力を許可します。これはtrue/falseや、あるいは0と1が使えます。

cc
クレジットカードの番号を入力します。

comparison
比較演算子(<>=などの記号)を使った数字の比較を指定するものです。これは演算記号と比較する数字を配列にまとめて指定します。例えば、「10以下のもの」と指定したいならば、’rule’=>array(’comparison’,’<’,10)というように指定をします。

date
日付の入力をするものです。これは、日付のフォーマットを「y」「m」「d」の組み合わせた文字で指定する必要があります。たとえば’ymd’とすれば、「2011-12-24」というような形式で記述することになります。これも配列を使い、’rule’=>array(‘date’,’ymd’)というようにフォーマットのテキストをあわせて用意してやります。

decimal
実数を入力するためのものです。小数点以下何桁まで許可するかを数字で指定します。例えば「小数点以下2桁の実数」ならば、’rule’=>array(‘decimal’,2)という形で記述します。

email
メールアドレスの入力をするものです。これは単に’email’だけでOKです。一応、真偽値のオプションを持っていて、trueを渡すことでホストにアクセスしてアドレスのチェックを行うようにする機能も持っています。

equalTo
特定の値と等しい場合のみ受け付けるものです。オプションとして比較する値を渡します。例えば、’rule’=>array(‘equalTo’,’hello’)とすれば、helloというテキストのみ受け付けます。

extension
これはファイルの拡張子を指定するものです。受け付ける拡張子を配列で用意します。例えば、’rule’=>array(‘extension’,array(“jpg”,”gif”))というようにすると、jpggifの拡張子のみ受け付けるようになります。

ip
IPアドレスを入力するものです。これもオプションがあって、’IPv4’または’IPv6’のいずれかを指定します。例えば、’rule’=>array(‘ip’,’IPv6’)とすれば、IPv6のIPアドレスのみ受け付けるようにできます。

isUnique
値がユニークなもののみ入力を許可します。ユニークとは「すべての値が異なる」ということ、つまり、既に入力済みの値を受け付けないようにするものです。オプションはありません。

minLength
最小文字数を指定するものです。文字数を示す数字を指定します。’rule’=>array(‘minLength’,5)とすれば、5文字以上入力する必要があります。

maxLength
最大文字数を指定するものです。文字数を示す数字を指定します。’rule’=>array(‘maxLength’,10)とすれば、10文字以内で入力する必要があります。

money
お金の金額を入力するものです。オプションとして、お金の記号(¥とか$)を右と左のどちらにつけるかを’left’,’right’で指定できます。’rule’=>array(‘money’,’left’)といった形ですね。貨幣単位は、地域情報から自動的に割り出されるので個別に設定する必要はありません。

multiple
これは<select>などで複数選択可のときに選択項目数を設定するものです。’in’,’min’,’max’といったオプションがあります。’in’は選択項目の配列、’min’’max’は最小選択数・最大選択数を示します。例えば、’rule’=>array(’multiple’, array(‘in’=>array(‘one’,’two’,’three’), ’min’=>1, ’max’=>2))とまあこんな具合に指定をします。multipleのオプションに配列を用意し、その中にin,min,maxを用意する。そしてinは更に値を配列として用意する、というわけです。かなりややこしい構造になります。

inList
用意したリストの項目だけ入力可能にするものです。オプションとしてリストを配列にまとめたものを渡します。’rule’=>array(‘inList’,array(‘one’,’two’,’three’))というような形です。

numeric
数値だけ入力を許可します。オプションは特にありません。

notEmpty
空(未入力)はダメ!というもの。オプションは特にありません。

phone
電話番号の入力をするもの。これはUSの電話番号フォーマットのみ対応しているようです。オプションとして数字のフォーマットと国情報を指定することができます。’rule’=>array(‘phone’,null,’US’)といった形です。US以外の場合は、第2引数に正規表現で入力フォーマットを用意しないといけないようです。

postal
郵便番号を入力するもの。これはUS、カナダ、英国、イタリア、ドイツ、ベルギーに対応しています。オプションとして、やはり正規表現によるフォーマットと国情報を指定できます。’rule’=>array(‘postal’,null,’uk’)というように記述をします。

range
指定範囲内の数値のみ入力を許可します。betweenと同じような働きですね。最小値と最大値をオプションで用意します。’rule’=>array(‘range’,0,10)というようにして使います。

ssn
これは、社会保障番号というものを入力するためのものです。US、デンマーク、オランダに対応しています。それ以外の国は、フォーマットを示す正規表現のパターンと、国情報を引数に指定して設定できます。’rule’=>array(‘ssn’,null,’us’)という感じです。日本には社会保障番号はありませんからまず使わないでしょう。

url
Webのアドレス(URL)を入力するためのものです。オプションはありません。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

※関連コンテンツ

「初心者のためのCakePHP2 プログラミング入門」に戻る