WinRoadのLaravel4初心者講座

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

Winroad徒然草の管理人がお届けします
エラーメッセージとビュー

エラーメッセージとビュー

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

前回は、エラーメッセージをコントローラ内で表示してみました。エラーメッセージをビューに引き渡すには、どうすればいいのでしょうか。withErrorsメソッドで、簡単に引き渡すことが出来ます。

(例)app/controllers/UserController.php

<?php class UserController extends BaseController{
 public function getCreate(){
 return View::make('user/create');
 }
 public function postCreate(){
 $inputs=Input::all();
 $rules=[
 'name'=>'required',
 'email'=>'required|email',
 'password'=>'min:8' ];
 }
 $val=Validator::make($inputs,$rules);
 if($val->fails()){
 return Redirect::back()
 ->withErrors($val)
 ->withInput();
 }
 return View::make('user/index'); }
  • 15行目:withErrorsメソッドで、バリデーションエラーメッセージを添付して、直前のページへリダイレクトします。withErrorsメソッドは、引数にインスタンス化したバリデーションを指定します。

withErrorsメソッドで引き渡されたエラーメッセージは、$errorsプロパティで、firstメソッドやallメソッドで取り出すことが出来ます。下記にcreaeビューを記述します。

(例)app/views/user/create.blade.php

@extends('layout')
 @section('content')
 <h1>ユーザー作成</h1>
 {{Form::open()}}
 {{Form::label('name','氏名')}}
 {{Form::text('name',Input::old('name'))}}
 {{$errors->first('name','<p style="color:red">:message</p>')}}
 {{Form::label('email','Eメール')}}
 {{Form::email('email',Input::old('email'))}}
 {{$errors->first('email','<p style="color:red">:message</p>')}}
 {{Form::label('password','パスワード')}}
 {{Form::password('password')}}
 {{$errors->first('password','<p style="color:red">:message</p>')}}
 {{Form::submit('新規作成')}}
 {{Form::close()}}
  • 7行目:emailフィールドをバリーデートしたエラーメッセージが表示されます。つまり、空白がInputされたら、emailは必ず指定して下さい。と表示されますし、空白ではないが、email形式でない値がInputされたら、emailに正しい形式をご指定下さい。と表示されます。

上記例では、下記のようにエラーメッセージが表示されます。

laravel039

« »

コメントを残す

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