prologue/alerts

Prologue Alerts 是一个处理全局站内消息的包。

1.2.0 2024-03-12 11:23 UTC

README

Total Downloads Software License Packagist Version

Laravel 的全局站内消息。通过简单的 API 触发通知气泡,可在当前页面和下一页(使用闪存数据)。

目录

安装

您可以通过 Composer 为您的 Laravel 6+ 项目安装此包。

$ composer require prologue/alerts

对于 Laravel 5.4 及以下版本,请在 app/config/app.php 中注册服务提供者。

'Prologue\Alerts\AlertsServiceProvider',

将别名添加到 app/config/app.php 中的别名列表中。

'Alert' => 'Prologue\Alerts\Facades\Alert',

配置

此包为您提供一些配置选项。

在您的命令行应用程序中运行此命令以创建配置文件

$ php artisan vendor:publish --provider="Prologue\Alerts\AlertsServiceProvider"

配置文件将在此处发布:config/prologue/alerts.php

使用

添加警报

由于主 AlertsMessageBag 类是 Illuminate 的 MessageBag 类的扩展,我们可以利用其功能轻松添加消息。

Alert::add('error', 'Error message');

通过警报级别添加警报

默认情况下,包在其配置文件中定义了一些警报级别。默认级别是 successerrorwarninginfo。当您调用这些级别之一作为函数时,AlertsMessageBag 会检查并注册您提供的警报,并使用正确的键进行注册。

这使得为特定警报类型添加警报变得非常容易

Alert::info('This is an info message.');
Alert::error('Whoops, something has gone wrong.');

当然,您可以通过将其添加到您自己的配置文件中来添加您自己的警报级别。有关如何发布配置文件的说明,请参见上文

将警报闪存到会话中

有时您希望在例如重定向到另一个路由时记住警报。这可以通过调用 flash 方法来完成。然后,AlertsMessageBag 类会将当前设置的警报放入当前会话中,以便在重定向后使用。

// Add some alerts and flash them to the session.
Alert::success('You have successfully logged in')->flash();

// Redirect to the admin dashboard.
return Redirect::to('dashboard');

// Display the alerts in the admin dashboard view.
return View::make('dashboard')->with('alerts', Alert::all());

显示警报

请记住,AlertsMessageBag 类只是 Illuminate 的 MessageBag 类的扩展,这意味着我们可以使用其所有功能来显示消息。

@foreach (Alert::all() as $alert)
    {{ $alert }}
@endforeach

或者如果您想为某个特定的警报级别显示单个警报。

@if (Alert::has('success'))
    {{ Alert::first('success') }}
@endif

为每个警报级别显示所有消息

@foreach (Alert::getMessages() as $type => $messages)
    @foreach ($messages as $message)
        <div class="alert alert-{{ $type }}">{{ $message }}</div>
    @endforeach
@endforeach

检查警报

有时检查是否存在警报可能很重要,例如,只有当存在某些警报时才加载 JavaScript/styles(有助于提高性能)。

您可以检查是否存在错误。

Alert::has(); // Will check for any alerts
Alert::has('error'); // Will check for any alerts listed as errors.

您还可以获取当前警报的数量。

Alert::count(); // Will give you a total count of all alerts based on all levels within your alerts config.
Alert::count('error'); // Will tell you only the amount of errors and exclude any levels.

如果您想了解更多关于如何显示消息的方法,请参阅Illuminate 的 MessageBag 类的详细说明

致谢

Dries Vints 创建 - 他是在阅读 Todd Francis 的博客文章后产生的灵感。此包使用了他的博客文章中的许多概念,以及 Illuminate 的 Log 包 使用的警报级别概念。由 Cristian Tabacitu 维护,多亏了它在 Backpack for Laravel 中的应用。

变更日志

您可以在这里查看该软件包的变更日志。

许可证

Prologue Alerts 遵循MIT 许可协议