Laravel5.4のバリデーションについて記載
1.Routeにフォームの送信先を記述
Route::post('/formurl/','ServiceController@validateRequest');
2.Controllerにvalidateを行う項目と内容を記述
public function validateRequest(Request $request){
$this->validate($request, [
//処理内容の指定(useridは必須、最大4文字)
'userid' => 'required|max:4',
],
//エラー文言の指定
[
'userid.required' => ':attributeは必須です。',
'userid.max' => ':attributeは4文字を超えています。',
],
//attributeに表示される表示名称の指定
[
'userid' => 'ユーザーID',
]);
}
3.続いてエラー処理の記述
エラーメッセージ、入力内容をリダイレクト先に付与
if($validator->fails()){
return redirect('/formurl')
->withErrors($validator)
->withInput();
} else {
}
4.失敗時にリダイレクト先でエラーメッセージの取得
index.blade.phpでの取得
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
Controllerや、view composerで取得したい場合
//エラーメッセージ
$_session = session()->all();
$_error_msg = $_session['errors']->default;
//前回の入力内容
$_session = session()->all();
$_old_input = $_session['_old_input'];
以上