kaoken / laravel-flash-message by kaoken

Use it to display a simple flash message with Laravel 5.
24
0
2
Package Data
Maintainer Username: kaoken
Package Create Date: 2017-05-09
Package Last Update: 2018-01-09
Language: PHP
License: MIT
Last Refreshed: 2024-05-03 15:01: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-flash-message

Build Status composer version licence laravel version

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内の全てのメッセージ削除され、表示されなくなる。

ライセンス

MIT