synergitech / laravel-alert
使用 Laravel 构建自定义警报
v2.0.2
2024-03-13 10:55 UTC
Requires
- php: ^8.0
- illuminate/session: ^8.0 || ^9.0 || ^10.0 || ^11.0
- illuminate/support: ^8.0 || ^9.0 || ^10.0 || ^11.0
Requires (Dev)
- orchestra/testbench: ^8.0 || ^9.0
- php-parallel-lint/php-parallel-lint: ^1.3
- phpstan/phpstan: ^1
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.6
README
受 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', ], ],