フラッシュメッセージとは
ログインした時や削除した時に「ログインしました」や「削除しました」などの表示が出てきます。
これがフラッシュメッセージです。
ユーザー退会時のフラッシュメッセージ
都合によりコードは一部省略します。
UsersController.php
public function destroy($id)
{
#省略
{
$user->delete();
}
return redirect('/')->with('alertMessage', '退会が完了しました'); //ここを追記
}
show.blade.php
@if (session('alertMessage'))
<div class="alert alert-danger text-center w-25 mx-auto">
{{ session('alertMessage') }}
</div>
@endif
表示したい箇所に以下のコードを書きました。このようなフラッシュメッセージができました。
ユーザー更新時のフラッシュメッセージ
ユーザーデータが更新された時のフラッシュメッセージです。
UsersController.php
public function update(UserRequest $request, $id)
{
#省略
return redirect()->route('users.show', $user->id)->with('successMessage','ユーザー情報を更新しました。');
}
コントローラーに上のようにsuccessMessageを追記しました。
show.blade.php
@if (session('alertMessage'))
<div class="alert alert-danger text-center w-75 mx-auto">
{{ session('alertMessage') }}
</div>
@elseif (session('successMessage'))
<div class="alert alert-success text-center w-75 mx-auto ">
{{ session('successMessage') }}
</div>
alertMessageの後をif文でsuccessMessageを追記しました。
表示したい箇所に実装します。show.blade.phpに追記しました。
これでみたいな表示が出ました。
ユーザ新規登録が完了時のフラッシュメッセージ
RegisterControllerで実装するので注意してください。
Auth/RegisterController.php
#省略
use Illuminate\Http\Request;
#省略
protected function registered(Request $request,$user)
{
session()->flash('successMessage','ユーザー登録が完了しました。');
return redirect('/');
}
これで実装ができました。show.blade.phpは使い回しができたので新しく実装はしなかったです。
ユーザーログイン時のフラッシュメッセージ
これも実装箇所がユーザー退会の時と違うので注意してください。
Auth/LoginController.php
#省略
use Illuminate\Http\Request;
#省略
protected function authenticated(Request $request,$user)
{
session()->flash('successMessage','ログインしました');
return redirect('/');
}
これで出力されました。show.blade.phpは使い回しができたので新しく実装はしなかったです。
資料