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

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


Controller

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

// app/Http/Controllers/ArticlesController.php

	...
	public function destroy($id) {
		$article = Article::findOrFail($id);

		$article->delete();
		\Session::flash('flash_message', '記事を削除しました。');  // 追加		

		return redirect('articles');
	}
	...

\Sessionファサードを使用して、セッションにアクセスしています。flashメソッドでフラッシュ情報としてメッセージを追加しました。フラッシュ情報とは次のリクエストだけで有効な一時的なセッション情報です。


View

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

// resources/views/layout.blade.php

...
<body>
	<div class="container">
		{{-- フラッシュメッセージの表示 --}}
		@if (Session::has('flash_message'))
			<div class="alert alert-success">{{ Session::get('flash_message') }}</div>
		@endif

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

	<!-- Scripts -->
	<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
	<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.1/js/bootstrap.min.js"></script>
</body>
</html>
 

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


演習

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

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中