laravel5の新規作成や更新時で、通常メッセージ(緑色)&エラーメッセージ(赤色)の出し分けをする
1, layout.blade.phpなど共通ファイルに、通常メッセージ(緑色)&エラーメッセージ(赤色)を表示する記述をしておく
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
{{-- フラッシュメッセージの表示 --}} @if (Session::has('flash_message')) <div class="alert alert-success"> {!! nl2br(htmlspecialchars(Session::get('flash_message'))) !!} </div> @endif {{-- 新規作成や更新時のValidateエラーメッセージ --}} @if (count($errors) > 0) <div class="alert alert-danger"> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif |
2, 通常メッセージはフラッシュに格納。エラーメッセージはwithErrorsに格納(validateエラーと共通化できる!)
1 2 3 4 |
// 更新が無事完了して、編集画面に戻る時にメッセージを表示する $message = "問題なく更新できた!"; \Session::flash('flash_message', $message); return redirect()->to('/user'); |
1 2 3 4 5 6 7 8 9 10 11 |
// 複数のエラーが発生! $error_messages[] = "エラーその1"; $error_messages[] = "エラーその2"; // エラーがあったら、画面にその旨を表示する if(!empty($error_messages)){ // レコードを元の状態に戻す! DB::rollback(); // 編集画面に戻る return redirect('/user/'. $id .'/edit')->withInput()->withErrors( $error_messages); } |