synergitech/laravel-alert

使用 Laravel 构建自定义警报

v2.0.2 2024-03-13 10:55 UTC

This package is auto-updated.

Last update: 2024-09-05 06:48:43 UTC


README

Tests

Easy Sweet Alert Messages for Laravel 启发,此包提供了一种构建应用程序 UI 警报的方法。

默认情况下,此包支持 SweetAlert2,但您可以通过创建与 SweetAlerts 一起的 toast 来调整输出以支持其他插件。

安装

composer require synergitech/laravel-alert

Laravel 应该能够自动检测该包并将其包含在内。

您还应该确保已经适当地安装了 SweetAlert2 和/或任何其他通知包到您的应用程序 UI 中。

快速入门

您可以在应用程序中使用外观或辅助函数来生成包含简单标题、文本和类型元素的警报。

use Alert;

...

Alert::message('Message', 'Optional Title');
Alert::info('Info Message', 'Optional Title');
Alert::success('Success Message', 'Optional Title');
Alert::error('Error Message', 'Optional Title');
Alert::warning('Warning Message', 'Optional Title');
alert()->message('Message', 'Optional Title');
alert()->info('Info Message', 'Optional Title');
alert()->success('Success Message', 'Optional Title');
alert()->error('Error Message', 'Optional Title');
alert()->warning('Warning Message', 'Optional Title');

要实际显示警报,您需要在主视图文件中包含一小段代码。此包只将完整的 JSON 对象输出到您的会话中。

请注意 此数据是 放入 您的会话中的,因此您必须 取出 它以从会话中清除。这允许您不会从后台 AJAX 调用中丢失警报。

Blade

@if (Session::has('alert.sweetalert'))
    <script>
        Swal.fire({!! Session::pull('alert.sweetalert') !!});
    </script>
@endif

Twig

{% if session_has('alert.sweetalert') %}
    <script>
        Swal.fire({{ session_pull('alert.sweetalert')|raw }});
    </script>
{% endif %}

高级用法

此包提供了一种类似构建器的语法,允许您进一步自定义警报。以下示例提供相同的输出。

alert()->warning('You need to complete extra fields', 'Unable to submit');

\Alert::warning('You need to complete extra fields')
    ->title('Unable to submit');

alert()->type('warning')
    ->message('You need to complete extra fields')
    ->title('Unable to submit');

您可以通过发布配置到应用程序中来自定义可用的字段。阅读配置文件以获取更多详细信息。

php artisan vendor:publish --provider="SynergiTech\Alert\ServiceProvider"

多种输出类型

如果您指定第二个输出,例如创建 toast 选项,此库将始终将 两个 都添加到会话中 除非 您要求特定类型(仅 v2)。

// in your controller

alert()->output('toast')->info('Please check your settings.');

// OR

alert()->as('toast')->info('Please check your settings.');

示例配置

// config/alert.php

'output' => [
    'sweetalert' => [
        'title' => 'title',
        'text' => 'text',
        'icon' => 'type',
    ],
    'toast' => [
        'text' => 'text',
        'icon' => 'type',
    ],
],