一定時間で消えるフラッシュメッセージを簡単に実装[Laravel8]

Laravel

以前、手軽にフラッシュメッセージが実装できるnotieを紹介しました

今回は、そのnotieを使ってLaravelでフラッシュメッセージを実装します

PHP

return redirect()
         ->route('item.show')
         ->with('success', '登録しました');

まずはサーバー側です

リダイレクトする際にwithメソッドを使って、メッセージとキーを送ります

HTML/Javascript

<body>
  <head>

    <link rel="stylesheet" type="text/css" href="https://unpkg.com/notie/dist/notie.min.css">
    <style>
      /* override styles here */
      .notie-container {
        box-shadow: none;
      }
    </style>

  </head>

  〜〜〜

  <script src="https://unpkg.com/notie"></script>

  @if(session('success'))
    <script>
      notie.alert({ type: 1, text: '{{ session('success') }}' });
    </script>
  @endif
</body>

notieのマニュアルに従い、cssとjsの読み込みを行います(head内と、body最後)

あとはサーバー側からwithでセットしたキー(success)によって、フラッシュメッセージが表示されます

簡単ですね

またこの際、内部的にsessionで指定したキーを削除してくれてるようで、再度このページをリロードしてもフラッシュメッセージは表示されません