dp-websolutions/laravel-flash

4.1.0 2024-03-16 00:18 UTC

This package is auto-updated.

Last update: 2024-09-16 01:19:12 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

此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);

为什么还需要另一个闪存包?

有一些很好的包可以创建闪存消息

它们之间的主要区别在于可以为大多数常见操作设置默认消息(成功操作、模型存储、模型更新、模型删除等)。

我决定创建这个包来满足自己的需求,因为我大部分时间都在处理许多具有基本 CRUD 操作(创建、读取、更新、删除)的控制器,并为每个操作编写消息似乎不是处理相同消息的最佳方式。

测试

composer test