kaoken / laravel-flash-message
Use it to display a simple flash message with Laravel 5.
1.5.4
2018-01-09 09:35 UTC
Requires
- php: >=7.0
- laravel/framework: 5.5.*
This package is auto-updated.
Last update: 2024-10-29 05:04:55 UTC
README
Laravelで、簡単なフラッシュメーセージを使いたい場合にどうぞ!
コンテンツの一覧
インストール
composer:
composer require kaoken/laravel-flash-message
初期設定
config\app.php
に以下のように追加:
'providers' => [ ... Kaoken\FlashMessage\FlashMessageServiceProvider::class, ], 'aliases' => [ ... 'FlashMessage' => Kaoken\FlashMessage\Facades\FlashMessage::class, ],
ミドルウェア
下記のミドルウェアで、FlashMessage
をインスタンス化した$flashMessage
という変数で、全て、または一部のBladeテンプレートで使用できるようにする為のもので、
view('test',['flashMessage' => FlashMessage::getInstance()])
という感じに、個々で使用したい場合は、追加しないこと。
app\Http\Kernel.php
に以下のように追加:
//----------------------------------------------------- protected $middleware = [ ... \Kaoken\FlashMessage\Middleware\FlashMessageMiddleware::class, //----------------------------------------------------- // または protected $middlewareGroups = [ 'web' => [ ... \Kaoken\FlashMessage\Middleware\FlashMessageMiddleware::class, //----------------------------------------------------- // または protected $routeMiddleware = [ ... 'flash.message' => \Kaoken\FlashMessage\Middleware\FlashMessageMiddleware::class,
メソッド一覧
使用例
Test
コントローラー
<?php namespace app\Http\Controllers; use FlashMessage; use App\Library\Http\Controllers\Controller; class Test extends Controller { public function getTest01() { // 文字列のみ FlashMessage::pushSuccess('This is test messege'); // 任意のオブジェクト $o = new \stdClass(); $o->title = 'title 01'; $o->text = 'text 01'; FlashMessage::pushError($o); $o = new \stdClass(); $o->title = 'title 02'; $o->text = 'text 02'; FlashMessage::pushError($o); return redirect('test02'); } public function getTest02() { return view('test'); } }
test.blade.php
テスト用テンプレート
@php $errorMessages = $flashMessage->errors(); $successMessages = $flashMessage->successes(); @endphp {{--成功メッセージ--}} @if( $flashMessage->hasSuccess() ) <h1>成功メッセージ</h1> @for($i=0;$i<count($successMessages);$i++) <hr /> {{$successMessages[$i]}} @endfor <hr /> @endif {{--エラーメッセージ--}} @if( $flashMessage->hasError() ) <h1>エラーメッセージ-</h1> @for($i=0;$i<count($errorMessages);$i++) <hr /> {{ $errorMessages[$i]->title }}<br /> {{ $errorMessages[$i]->text }}<br /> @endfor <hr /> @endif
例えば、最初の接続でhttp://hoge/test01
,Test@getTest01
呼び出した場合、FlashMessage
でメッセージが保存される。
次の接続で、http://hoge/test02
,Test@getTest02
呼び出した場合、テスト用テンプレートtest.blade.php
が表示され、
このとき下記のように表示される。
<h1>成功メッセージ</h1> <hr /> This is test messege <hr /> <h1>エラーメッセージ-</h1> <hr /> title 01<br /> text 01<br /> <hr /> title 02<br /> text 02<br /> <hr />
更新ボタンを押すと、FlashMessage
内の全てのメッセージ削除され、表示されなくなる。