kaoken/laravel-flash-message

Use it to display a simple flash message with Laravel 5.

1.5.4 2018-01-09 09:35 UTC

This package is auto-updated.

Last update: 2024-10-29 05:04:55 UTC


README

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,

メソッド一覧

使用例

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