WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
基本の使用法(バリデーション)

基本の使用法(バリデーション)

このエントリーをはてなブックマークに追加

Laravelには、バリデーションを簡単にできるValidatorクラスが用意されています。

Validator::make(データ,ルール)

Validatorクラスのmake()メソッドの第1引数には、バリデーションを行うデータを連想配列で指定します。そして、第2引数に、バリデーションルールを同じく連想配列で指定します。同じキーに対する複数のバリデーションルールを指定するには、パイプ(縦線)で区切るか、配列で分割指定します。

(例)

//受信データを配列に代入する
 $inputs=Input::all();
 //ルールを指定して、配列に代入する
 $rules=[
 'name'=>'required',
 'password'=>'required|min:8',
 'email'=>'required|email'];
 //バリデーション処理
 $val=Validator::make($inputs,$rules);
 条件分岐(失敗時は、リダイレクト)
 if($val->fails()){
 return Redirect::back()
 ->withErrors($val)
 ->withInput();
 }
 //成功時は、データ登録
 User::create($inputs);
 //成功時の移動先へ
 Return View::make('user/list');
  • 2行目:Input::all()でデータを受信しています。Input::only(‘name’,’password’,’email)と受信するデータを指定してもいいのですが、フォームから送信されたデータの内、ルールで指定したデータしか、バリデーション処理しませんので、Input::all()でも基本的に同じです。
  • 4-7行目:’キー’=>’ルール’でバリデーションルールを指定します。’required’は必須項目です。データが送信されたかどうかを判別します。
  • 6行目:上記は、複数のバリデーションルールをパイプ(縦線)で、区切って指定していますが、’password’=>[‘required’,’min:8′]のように配列で指定することも出来ます。
  • 9行目:バリデーションの結果を$valに代入しています。
  • 10行目:$val->fails()は真偽値を返します。バリデーションで引っかかったときにtrueを返します。これと反対で、$val->passes()は、バリデーションを通過したときに、trueを返します。
  • 11行目:Redirect::back()で、直前行へ戻ります。
  • 12行目:withErrors($val)で、エラーメッセージをフラッシュデータとして、添付します。
  • 取得したエラーは、リダイレクトしたページで、$errors->first(‘emai’)のように取得することが出来ます。
  • 13行目:withInput()で、直前の入力値をフラッシュデータとして、添付します。
  • 取得した直前値は、リダイレクトしたページでInput::old(‘email’)のように取得することが出来ます。

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です