通知
建议编辑通知 是一种强大的工具,可以让您保持用户对应用程序的知情和参与。它们可以用于提醒用户重要事件,例如长时间过程的完成或新消息的到达。在本指南中,我们将向您展示如何在应用程序中使用 Laravel Orchid 的通知功能。
请花一点时间查看我们提供反馈的建议,以确保您的应用程序看起来非常出色。
闪存消息
闪存通知是一种一次性消息,用户查看后会自动删除。设计用于通知用户最近发生的事件——例如数据成功保存——闪存通知提供快速简洁的反馈,而不会使界面杂乱。如果您需要保留通知数据,请考虑使用持久通知。
警告消息
要创建闪存通知,您可以使用以下代码:
use Orchid\Support\Facades\Alert;
Alert::message('欢迎登机!');
您还可以使用此代码的简短版本:
alert('您的操作已完成。');
除了显示消息,Laravel Orchid 还允许您使用不同的颜色来直观地指示通知的类型。您可以使用以下方法来实现:
Alert::info('欢迎访问我们的网站!');
Alert::success('您的消息已发送。');
Alert::error('请填写所有必填字段。');
Alert::warning('您的账户将被永久删除。');
如果您想防止在警报中自动转义数据,可以使用 withoutEscaping
方法。默认情况下,传递给警报的数据会被转义以防止 XSS 攻击。调用此方法将禁用该行为:
use Orchid\Support\Facades\Alert;
Alert::info('这是 <strong>加粗</strong> 文本。')
->withoutEscaping();
这将渲染消息中的 HTML 内容而不进行转义。
如果您想为通知使用自定义模板,可以使用 view
方法。此方法接受三个参数:Blade
模板的路径/名称、通知的颜色以及要传递给模板的变量数组:
use Orchid\Support\Facades\Alert;
use Orchid\Support\Color;
Alert::view('alert', Color::INFO(), [
'name' => 'Alexandr'
]);
Blade
模板看起来像这样:
{{-- resources/views/alert.blade.php --}}
Hello <strong>{{ $name }}</strong>
Toast 消息
Toast 消息是屏幕右上角出现的小型弹出通知。它们旨在简要通知用户某个操作或事件的结果,例如任务的成功完成。Toast 消息类似于闪存通知,但外观不同,并具有一些附加功能。
要创建 Toast 消息,您可以使用以下代码:
use Orchid\Support\Facades\Toast;
Toast::warning('输入无效。请检查您的表单。');
Toast 消息的一个附加功能是能够指定消息是否应在一段时间后自动隐藏。默认情况下,Toast 消息将在几秒钟后自动隐藏,但您可以使用 persistent
方法禁用此行为:
Toast::warning('输入无效。请检查您的表单。')
->persistent();
要重新启用自动隐藏,只需再次调用 autoHide
方法。
您还可以使用 delay
方法指定隐藏 Toast 消息前的延迟时间(以毫秒为单位)。此方法接受一个参数,即隐藏消息前的等待毫秒数:
Toast::warning('输入无效。请检查您的表单。')
->delay(2000);
seconds
方法允许您设置隐藏 Toast 消息前的延迟时间,但以秒为单位。这使得配置延迟时间更加人性化:
Toast::info('您的数据已保存!')
->seconds(5); // 5 秒后隐藏
如果您想防止在 Toast 中自动转义数据,可以使用 withoutEscaping
方法。默认情况下,传递给 Toast 的数据会被转义以防止 XSS 攻击。调用此方法将禁用该行为:
use Orchid\Support\Facades\Toast;
Toast::info('这是 <strong>加粗</strong> 文本。')
->withoutEscaping();
这将渲染消息中的 HTML 内容而不进行转义。
持久通知
持久通知不同于闪存消息,它们在查看后不会被删除,即使用户离线也可以发送给用户。它们是通知用户的绝佳方式,例如,任务管理应用程序可以通知员工新任务。
您可以通过单击应用程序导航栏中的“通知铃铛图标”来查看这些通知。如果有未读通知,将显示计数器。
在使用此功能之前,重要的是查看 Laravel 通知文档,因为它提供了有关如何使用此功能的更多详细信息和示例。
要发送通知,您只需将 DashboardMessage
实例传递给用户的 notify
方法。在继续之前,请确保您的用户模型实现了 Notifiable
trait:
use Orchid\Platform\Notifications\DashboardMessage;
use Orchid\Support\Color;
$user->notify(DashboardMessage::make()
->title('新任务:一月报告')
->message('请查看任务详情和截止日期。')
->action('https://example.com/reports/january')
->type(Color::INFO)
);
您还可以使用以下 Artisan 命令创建自定义通知类:
php artisan make:notification TaskCompleted
此命令将在您的 app/Notifications
目录中创建一个新类。
要发送通知,您必须将 DashboardChannel
添加到 via
通知方法中:
use Orchid\Platform\Notifications\DashboardChannel;
public function via($notifiable)
{
return [
DashboardChannel::class
];
}
在发送通知之前,您还必须在通知类中定义一个 toDashboard
方法。此方法将接收一个 $notifiable
对象,并且必须返回一个 DashboardMessage
对象:
use Orchid\Platform\Notifications\DashboardMessage;
public function toDashboard($notifiable)
{
return (new DashboardMessage)
->title('新任务:一月报告')
->message('请查看任务详情和截止日期。')
->action(url('/'));
}
通知可以通过两种方式发送:使用 Notifiable
trait 中的 notify
方法或使用 Notification
facade。您可以查看 Laravel 通知文档 以了解有关这两种发送通知方法的更多信息。
以下是使用 'notify’ 方法向用户发送通知的示例:
$user = User::find(1);
$user->notify(new TaskCompleted);