1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Laravelでいろんなフラッシュメッセージを出す!

Last updated at Posted at 2023-05-08

フラッシュメッセージとは

ログインした時や削除した時に「ログインしました」や「削除しました」などの表示が出てきます。
これがフラッシュメッセージです。

スクリーンショット 2023-05-08 12.42.56.png

ユーザー退会時のフラッシュメッセージ

都合によりコードは一部省略します。

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

表示したい箇所に以下のコードを書きました。このようなフラッシュメッセージができました。

スクリーンショット 2023-05-08 12.50.26.png

ユーザー更新時のフラッシュメッセージ

ユーザーデータが更新された時のフラッシュメッセージです。

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に追記しました。

これでみたいな表示が出ました。

スクリーンショット 2023-05-08 13.02.34.png

ユーザ新規登録が完了時のフラッシュメッセージ

RegisterControllerで実装するので注意してください。

Auth/RegisterController.php
#省略
use Illuminate\Http\Request;

#省略

 protected function registered(Request $request,$user)
    {
        session()->flash('successMessage','ユーザー登録が完了しました。');
        return redirect('/');
    }

これで実装ができました。show.blade.phpは使い回しができたので新しく実装はしなかったです。

スクリーンショット 2023-05-08 13.17.18.png

ユーザーログイン時のフラッシュメッセージ

これも実装箇所がユーザー退会の時と違うので注意してください。

Auth/LoginController.php
#省略
use Illuminate\Http\Request;

#省略

protected function authenticated(Request $request,$user)
    {
        session()->flash('successMessage','ログインしました');
        return redirect('/');
    }

これで出力されました。show.blade.phpは使い回しができたので新しく実装はしなかったです。

スクリーンショット 2023-05-08 12.42.56.png

資料

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?