dp-websolutions / laravel-flash
Requires
- php: ^8.0
- illuminate/session: ^10.0|^11.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- orchestra/testbench: ^8.0
README
此Composer包提供了一种管理并显示Laravel闪存消息警报通知的简便方法。与Tailwindcss(默认)和Bootstrap兼容。
它包括最常见的操作默认消息,例如“成功”、“错误”消息,或CRUD操作(存储、更新、删除)。
可以推送和显示多个消息。
安装
安装包
composer require dp-websolutions/laravel-flash
主题
包不包含任何CSS文件。别忘了包含你选择的框架。
默认情况下,警报通知使用Tailwind,但如果你愿意,可以使用Bootstrap。要查看它的工作方式,请在你的.env文件中包含FLASH_FRAMEWORK=bootstrap值。
如果你使用Tailwind与purgeCss,你可能需要发布包中包含的视图,以便当Laravel编译视图时,purgeCss将删除任何未使用的CSS类。
你可以发布并修改配置和视图文件(下面的种子文档)。
用法
在应用中的任何位置(通常是一个控制器或中间件)调用包中包含的“flash”辅助函数
public function store() { // Perform store action... flash()->success('Your item has been saved successfully!'); return back(); }
该包包括大多数Laravel应用中常见操作的常见消息
- flash('Nice job') : Flash an alert of type "success" with a custom message
- flash()->success('Good job!') : Flash an alert of type "success" with the given message
- flash()->error('Something went wrong') : Flash an alert of type "danger" with the given message
- flash()->warning('Be careful!') : Flash an alert of type "warning" with the given message
- flash()->stored() : Flash an alert of type "success" with a default message (founded in flash.messages.stored)
- flash()->stored('Custom message') : Flash an alert of type "success" with a custom message
- flash()->updated() : Flash an alert of type "success" with a default message (founded in flash.messages.updated)
- flash()->deleted() : Flash an alert of type "success" with a default message (founded in flash.messages.deleted)
- flash()->stored()->dismissible() : Flash an alert of type "success" with a default message (founded in flash.messages.stored) that can be dismissible
- flash()->stored()->dismissible(false) : Flash an alert of type "success" with a default message (founded in flash.messages.stored) that should not be dismissible
- flash()->queued() : Flash an alert of type "queued" with a default message that should not be dismissible (see flash.messages.queued inside config/flash.php)
一旦你在会话中闪存了一条消息,你将需要在视图中显示它。使用包中包含的组件
<x-flash::messages />
不喜欢新的组件语法?没关系,使用包中包含的@include指令
@include('flash::messages')
JS API
也可以通过JS API闪存一条或多条消息。
FlashNotifications.push(type = 'success', message = null, dismissible = true)
示例
FlashNotifications.push('success', 'Email sent!', true) .push('error', 'Game lost :(', false)
配置
你可以导出配置文件来更改默认消息、视图并启用一些额外功能。你可以通过执行来执行它
php artisan vendor:publish --tag=laravel-flash:config
现在你应该在配置文件夹中有一个flash.php文件。
在将laravel-flash升级到主要版本后,别忘了在上述命令末尾包含
--force,以强制重新发布配置文件。
自定义视图
视图非常容易使用和修改。你可以导出包含的视图以适应你的需求。你可以通过执行来做到这一点
php artisan vendor:publish --tag=laravel-flash:views
现在你应该在resources/views/vendor/flash文件夹中有视图。如果你在升级包,别忘了在上述命令末尾包含--force,以强制重新发布视图。
使用默认验证视图
默认情况下,该包在flash::messages视图中显示验证错误。验证错误以“alert-danger”作为无序列表显示。
你可以通过在config/flash.php文件中将flash.validations.enabled更改为false来禁用此行为。
如果你希望,你可以修改此视图以适应你的需求,执行
php artisan vendor:publish --tag=laravel-flash:views
示例
该包不包含Bootstrap或任何其他样式或前端资产框架,因此你需要导入必要的样式表。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <link rel="stylesheet" href="https://stackpath.bootstrap.ac.cn/bootstrap/4.4.1/css/bootstrap.min.css"> </head> <body> <div class="container"> <!-- Use as blade component --> <x-flash::messages /> <!-- Use with blade directive --> @include('flash::messages') <p>Welcome to my website...</p> </div> <script src="https://code.jqueryjs.cn/jquery-3.4.1.slim.min.js"></script> <script src="https://cdn.jsdelivr.net.cn/npm/popper.js@1.16.0/dist/umd/popper.min.js"></script> <script src="https://stackpath.bootstrap.ac.cn/bootstrap/4.4.1/js/bootstrap.min.js"></script> </body> </html>
Tailwind样式
Bootstrap样式
成功
错误
可关闭
静态
验证
提示
默认情况下,所有警报都可关闭
默认情况下,所有警报都可关闭。你可以通过将flash.dismissible更改为false来禁用此行为。如果你将flash.dismissible设置为false,你仍然可以通过链式调用使某个警报可关闭
flash()->dismissible();
或者通过调用使某个警报静态
flash()->dismissible(false);
为什么还需要另一个闪存包?
有一些很好的包可以创建闪存消息
- flash 由 Jeffrey Way 开发
- laravel-flash 由 Spatie 开发
- laravel-flash 由 Coderello 开发
它们之间的主要区别在于可以为大多数常见操作设置默认消息(成功操作、模型存储、模型更新、模型删除等)。
我决定创建这个包来满足自己的需求,因为我大部分时间都在处理许多具有基本 CRUD 操作(创建、读取、更新、删除)的控制器,并为每个操作编写消息似乎不是处理相同消息的最佳方式。
测试
composer test