kaoken/laravel-flash-message

使用它来在 Laravel 5 中显示简单的闪存消息。

1.5.4 2018-01-09 09:35 UTC

This package is auto-updated.

Last update: 2024-08-29 04:25:35 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