初めてのLaravel 5.6 : (23) Flash メッセージ

前回は記事の削除を実装しました。記事の削除後は記事一覧にリダイレクトしたのですが、何のメッセージの表示も無く、記事が正しく削除されたのか分かりづらい感じです。今回は フラッシュメッセージを実装して、記事が正しく削除された事をユーザに伝えるようにします。


Controller

ArticlesController.php の destroy メソッドを修正します。

// app/Http/Controllers/ArticlesController.php
...

class ArticlesController extends Controller
{
    ...
    public function destroy($id) {
        $article = Article::findOrFail($id);

        $article->delete();

        return redirect('articles')->with('message', '記事を削除しました。');
    }
}

redirect() 時に with() メソッドでフラッシュ情報としてメッセージを追加します。
フラッシュ情報とは次のリクエストだけで有効な一時的なセッション情報(サーバーに保存する情報)です。


View

フラッシュメッセージを表示するように layout.blade.php を修正します。

// resources/views/layout.blade.php

...
<body>
    <div class="container py-4">
        {{-- フラッシュメッセージの表示 --}}
        @if (session('message'))
            <div class="alert alert-success">{{ session('message') }}</div>
        @endif

        {{-- コンテンツの表示 --}}
        @yield('content')
    </div>
</body>
</html>

セッションに ‘message’ をキーに持つ情報があれば、表示するように修正しました。class=”alert alert-success” というのは Bootstrap の CSSで、この class を指定すると、正常時のアラートとして div を緑に装飾して表示してくれます。


演習

ArticlesController.php の store や update メソッドでもフラッシュメッセージを表示するよう修正してみましょう。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中