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

バリデーションをマスターする (5/6)

作成:2015-10-17 15:40
更新:2015-10-17 15:40

■addメソッドでルールを追加する

これでバリデーションの基本的な使い方はわかりました。

バリデーションを設定するメソッドは基本的には使いやすいのですが、ただひとつ、「add」メソッドだけは使い方がちょっとわかりにくいところがあります。

addは、フィールド名やルールの情報などを引数に指定します。とりあえず、以下のような書き方を覚えておきましょう。
$validator->add( フィールド , 
    ルール ,['rule'=> ルール設定 ]);

addで設定するルールは、たいだいこの書き方で設定することができます。では、主なルールをここでまとめておきましょう。

●比較演算
$validator->add(
    'age','comparison',['rule' =>['comparison','>',20]]
);
comparisonは、値を比較するためのものです。上の例は、ageの値が20以上かどうかをチェックするものです。ルール設定は、'rule' =>['comparison','>',20]となっていますね。これでcomparisonルールで、>演算子を使い、20と比較しているわけですね。'>'と20をいろいろと変更すれば使い方がわかってくるでしょう。

●メールアドレス
$validator->add(
    'mail','validFormat',['rule' => 'email']
);


メールのチェックは、'validFormat'というルールを利用します。ruleに'email'を指定することで、値がメールアドレスの型式になっているかどうかをチェックできます。

●最大文字数/最小文字数
$validator->add(
    'name','length',['rule'=>['minLength',6]]
);
$validator->add(
    'name','length',['rule'=>['maxLength',20]]
);

'length'は文字数を指定します。'minLength'は最小文字数を、'maxLength'は最大文字数を設定します。上の例は、6文字より多く、20文字より少ないことを示します。

●英数字のみ
$validator->add(
    'name','alphaNumeric',['rule'=>'alphaNumeric']
);


'alphaNumeric'は、半角英数字のみの入力を指定するものです。特に設定は不要なので、'rule'にも'alphaNumeric'を指定しておくだけです。

●リストにあるものだけを受け付ける
$validator->add(
    'name','inList',['rule'=>[用意されている値である場合のみ受け付けます。上の例では、nameの値が'taro'か'hanako'の場合だけ受け付けます。

――他にもいろいろとありますが、とりあえずこれぐらい覚えておくとそれなりに使えるようになってきます。実際にルールをaddして動作を確かめてみましょう。

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

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

※関連コンテンツ

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