フォームを送信したとき、画面に反応がないと心もとないですよね。
Laravelで「投稿をしました」「投稿を削除しました」などのメッセージを簡単に表示する方法を解説します。
FlashメソッドとBootstrapを使って、ユーザーが次の操作をするまでの間だけ、メッセージを表示させるようにしていきます。
Laravel フォーム送信時に画面にメッセージを表示する方法【Laravel入門講座】
フォーム送信時に【投稿を作成しました】と表示させる方法を解説します。
コントローラーにメッセージをいれる
コントローラーのメソッドの最後に、次のように入れておきましょう。
投稿後は、text.indexにリダイレクトするよう設定しています。
1 2 3 4 5 |
public function メソッド名(Request $request) { 処理内容 $request->session()->flash('message', '投稿を作成しました'); return redirect()->route('text.index'); } |
シンプルに ->with としてもOK。
1 2 3 4 |
public function メソッド名() { 処理内容 return redirect()->route('text.index')->with('message', '投稿を作成しました'); } |
ビューファイルにメッセージの場所を作る
次に、表示されるビューファイル(blade.php) を開き、メッセージを表示したい場所に下記のコードを追加します。
1 2 3 |
@if(session('message')) <div class="alert alert-success">{{session('message')}}</div> @endif |
これで、フォーム送信時に下記のような画面が表示されます。
ボタンの色を変える
ボタンの表示の色は、クラスを編集すれば、変更できます。
先ほどのコードなら、この部分を変えます。
<div class=”alert alert-success“>{{session(‘message’)}}</div>
bootstrapでは、下記のような色の選択肢があります。
alert-primary | |
---|---|
alert-secondary | |
alert-success | |
alert-danger | |
alert-warning | |
alert-info | |
alert-light | |
alert-dark |
削除は赤色、うまくいったときは青や緑が使われる傾向があります。
サイトの色や目的に応じて、使い分けてくださいね。