通知
简介
除了支持发送电子邮件,Laravel 还支持通过各种传递渠道发送通知,包括电子邮件、短信(通过 Vonage,以前称为 Nexmo)和 Slack。此外,已经创建了各种社区构建的通知渠道来通过数十个不同的渠道发送通知!通知也可以存储在数据库中,以便它们可以在你的 Web 界面中显示。
通常,通知应该是简短的、信息性的消息,通知用户应用程序中发生的事情。例如,如果你正在编写一个计费应用程序,你可能通过电子邮件和短信渠道向用户发送「发票已支付」通知。
生成通知
在 Laravel 中,每个通知由单个类表示,通常存储在 app/Notifications 目录中。如果你在应用程序中看不到此目录,请不要担心 - 当你运行 make:notification Artisan 命令时,它将为你创建:
shell
php artisan make:notification InvoicePaid此命令将在你的 app/Notifications 目录中放置一个新的通知类。每个通知类包含一个 via 方法和可变数量的消息构建方法,如 toMail 或 toDatabase,它们将通知转换为针对该特定渠道定制的消息。
发送通知
使用 Notifiable Trait
通知可以通过两种方式发送:使用 Notifiable trait 的 notify 方法或使用 Notification 门面。Notifiable trait 默认包含在你的应用程序的 App\Models\User 模型上:
php
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
class User extends Authenticatable
{
use Notifiable;
}此 trait 提供的 notify 方法期望接收一个通知实例:
php
use App\Notifications\InvoicePaid;
$user->notify(new InvoicePaid($invoice));