royvoetman/laravel-flash-alerts

在资源控制器中自动显示成功提示:`store`、`update` 和 `destroy` 方法。

v1.0.6 2023-06-17 07:36 UTC

This package is auto-updated.

Last update: 2024-09-17 10:06:09 UTC


README

此包会在控制器中的 storeupdatedestroy 方法成功执行时,自动将成功消息闪存到会话中。

当没有抛出异常,并且当前会话中未定义键为 warning 的消息时,认为执行是成功的。

Latest Version MIT Licensed Total Downloads

安装

composer require royvoetman/laravel-flash-alerts

将 FlashAlerts 中间件添加到 app/Http/Kernel.php 中的 routeMiddleware 数组

 /**
  * The application's route middleware.
  *
  * These middleware may be assigned to groups or used individually.
  *
  * @var array
  */
 protected $routeMiddleware = [
    ...
    'flash.alerts' => \RoyVoetman\LaravelFlashAlerts\Middleware\FlashAlerts::class
 ];

将 FlashesAlerts 特性添加到应用程序的 BaseController 中

<?php

namespace App\Http\Controllers;

use RoyVoetman\LaravelFlashAlerts\Traits\FlashesAlerts;
...

abstract class Controller extends BaseController
{
    use FlashesAlerts;

    ...
}

签名

public function registerAlertMiddleware(string $model, array $except = []);
  • $model
    • 用于闪存消息的字符串,例如 $model = 'Book' 将生成:书籍已成功添加
  • $except
    • 在注册中间件时跳过的方法数组。

使用

如果注册了中间件并且 storeupdatedestory 方法已成功执行,则会在当前会话中键为 alert 下闪存一条消息。

如果当前会话中存在键为 warning 的消息或抛出异常,则请求不被认为是成功的。

示例

<?php

namespace App\Http\Controllers;

class BookController extends Controller
{    
    /**
     * BookController constructor.
     */
    public function __construct()
    {
        parent::__construct();
        
        $this->registerAlertMiddleware('Book');
    }
    
    ...
}

忽略方法

<?php

namespace App\Http\Controllers;

class BookController extends Controller
{    
    /**
     * BookController constructor.
     */
    public function __construct()
    {
        parent::__construct();
        
        $this->registerAlertMiddleware('Book', ['destroy']);
    }
    
    public function store()
    {
        // Will flash alert

        return redirect()->route('books.index');
    }

    public function destroy()
    {
        // Won't flash alert

        return redirect()->route('books.index');
    }
    ...
}

显示闪存警报

@if (session()->has('alert'))
    <div class="alert alert-success" role="alert">
        {{ session('alert') }}
    </div>
@endif

更改警报消息

php artisan vendor:publish --provider="RoyVoetman\LaravelFlashAlerts\FlashAlertsServiceProvider" 

这将把可重写的翻译放在 resources/lang/vendor/laravel-flash-alerts

变更日志

请参阅 CHANGELOG 了解最近的变化信息。

贡献

贡献是 欢迎的,并将得到完全 认可。我们通过 Github 上的拉取请求接受贡献。

拉取请求

  • PSR-2 编码规范 - 应用规范的最简单方法是安装 PHP Code Sniffer
  • 记录任何行为变更 - 确保保持 README.md 和任何其他相关文档的最新状态。
  • 创建功能分支 - 不要要求我们从您的 master 分支中拉取。
  • 每个功能一个拉取请求 - 如果您想做更多的事情,请发送多个拉取请求。

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 了解更多信息。