バリデーション失敗時にカスタムメッセージを表示させる
通常のバリデーション
$data = Input::all(); $rules = array( 'title' => 'required', 'content' => 'required|max:200') $validator = Validator::make($data, $rules); if($validator->fails()){ return Redirect:action('hogeController@create')->withErrors($validator) }
これだと$errorを遷移先のビューで表示させた場合英語のエラーメッセージがそのまま出る。
日本語でエラーメッセージを表示させたいときはValidator::makeの第三引数にカスタムメッセージを指定する。
$data = Input::all(); $rules = array( 'title' => 'required', 'content' => 'required|max:200') $message = array('title' => 'タイトルを入力してください'); $validator = Validator::make($data, $rules, $message); if($validator->fails()){ return Redirect:action('hogeController@create')->withErrors($validator) }
特定フィールドのバリデーションルールにメッセージを指定したい場合は.でフィールド名とルールを繋げて指定する。
$message = array('content.required' => '内容を入力してください');
これでcontentフィールドのrequiredチェックが失敗した時だけカスタムメッセージを表示できる。
(titleフィールドのrequiredチェックに失敗したときはデフォルドのメッセージが表示される)