跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知

Laravel通过Notifications系统实现多渠道通知,使用Artisan命令创建通知类;2. via()方法定义邮件、数据库等发送渠道,toMail()和toDatabase()构建各渠道消息内容;3. 接收模型需引入Notifiable Trait以支持notify()方法发送通知;4. 通知类实现ShouldQueue接口可异步队列处理,提升性能;5. 配置QUEUE_CONNECTION驱动并运行queue:work命令启用队列,确保高效可靠的消息投递。 在Laravel中发送系统通知,核心是利用其内置的Notifications系统,它能让你用一套代码,把消息通过邮件、数据库、短信等多种渠道发出去。整个过程不复杂,关键是理解几个组成部分怎么配合。 创建和定义通知类 通知的第一步是生成一个代表特定事件的类,比如订单发货或 密码重置 。Laravel的Artisan命令行工具能快速创建这个骨架。 生成类文件 :运行
php artisan make:notification OrderShipped
,会在
app/Notifications
目录下创建一个新文件。 指定发送渠道 :在生成的类里,
via()
方法决定消息走哪些路。返回一个数组,比如
['mail', 'database']
就表示同时发邮件和存数据库。 构建消息内容 :为每个渠道写对应的方法。要发邮件就得有
toMail()
方法,用
MailMessage
对象设置标题、正文和按钮链接;想存数据库就得有
toDatabase()
方法,返回一个包含订单ID、金额等信息的数组。 让接收者具备接收能力 不是所有模型都能收通知,必须先“注册”这个功能。Laravel默认的User用户模型已经准备好了。 PHP 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 使用Notifiable Trait :在你的Eloquent模型(如User)里,引入
Illuminate\Notifications\Notifiable
这个trait。它给模型加了
notify()
方法。 发送通知 :有了这个trait,你就可以直接调用
$user->notify(new OrderShipped($order))
来给这个用户实例发通知了。这里的
$order
是传给通知类构造函数的数据。 配置多渠道并启用队列 Laravel支持多种渠道,除了邮件和数据库,还能通过扩展包发短信或推送到Slack。更重要的是,为了不让发通知拖慢页面响应,应该用队列异步处理。 添加ShouldQueue接口 :让你的通知类实现
Illuminate\Contracts\Queue\ShouldQueue
接口。一旦加上,Laravel会自动把发送任务塞进队列,由后台的队列 处理器 慢慢执行,主程序不用等。 配置队列驱动 :确保你的
.env
文件里
QUEUE_CONNECTION
设置成了
redis
或
database
等支持的驱动,并且队列监听器
php artisan queue:work
正在运行。 基本上就这些。定义好通知内容,确认接收者能收,再配好渠道和队列,Laravel就能高效地把系统通知送到各个地方了。

相关文章