Package Data | |
---|---|
Maintainer Username: | kaoken |
Package Create Date: | 2017-05-09 |
Package Last Update: | 2018-01-09 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-22 15:03:12 |
Package Statistics | |
---|---|
Total Downloads: | 24 |
Monthly Downloads: | 0 |
Daily Downloads: | 0 |
Total Stars: | 0 |
Total Watchers: | 2 |
Total Forks: | 0 |
Total Open Issues: | 0 |
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,
|メソッド一覧 |説明|
|:------|:----|
|getInstance()|自身インスタンスを返す。|
|hasSuccess()|成功メッセージがあるか?ある場合は'true'を返す。|
|hasInfo()|情報メッセージがあるか?ある場合は'true'を返す。|
|hasWarnings()|警告メッセージがあるか?ある場合は'true'を返す。|
|hasError()|エラーメッセージがあるか?ある場合は'true'を返す。|
|successes()|成功メッセージを配列で取得する。|
|info()|情報メッセージを配列で取得する。|
|warnings()|警告メッセージを配列で取得する。|
|errors()|エラーメッセージを配列で取得する。|
|pushSuccess($msg)|成功メッセージを加える。$msg
の型は何でも良い。通常は、文字列を使用する。|
|pushInfo($msg)|情報メッセージを加える。$msg
の型は何でも良い。通常は、文字列を使用する。|
|pushWarning($msg)|警告メッセージを加える。$msg
の型は何でも良い。通常は、文字列を使用する。|
|pushError($msg)|エラーメッセージを加える。$msg
の型は何でも良い。通常は、文字列を使用する。|
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
内の全てのメッセージ削除され、表示されなくなる。