Laravel观察者用于监听模型生命周期事件,通过创建Observer类并注册到模型,可将创建、更新、删除等事件的处理逻辑解耦,保持代码清晰。使用artisan命令生成观察者,在AppServiceProvider中注册,支持created、updated、deleted等方法,适用于发送邮件、记录日志、清理缓存等场景。

在 Laravel 中,观察者模式(Observer)是一种优雅的方式来监听模型的生命周期事件,比如创建、更新、删除等。通过使用观察者,你可以将与模型状态变化相关的额外逻辑从控制器或模型中剥离出来,保持代码整洁和可维护。
Laravel 模型观察者允许你定义一个类,该类监听特定模型的多个生命周期钩子(如 creating、created、updating、updated 等)。当这些事件触发时,观察者中的对应方法就会自动执行。
以下是配置 Laravel 观察者的完整步骤:
1. 创建观察者类使用 Artisan 命令生成观察者:
php artisan make:observer UserObserver --model=User
这会在 app/Observers 目录下创建 UserObserver.php 文件,并绑定到 User 模型。
2. 编写观察者逻辑打开生成的观察者文件,添加你需要响应的事件方法:
namespace App\Observers;
use App\Models\User;
class UserObserver
{
public function created(User $user)
{
// 用户创建后发送欢迎邮件
\Mail::to($user->email)->send(new WelcomeEmail());
}
public function updating(User $user)
{
// 在更新前记录旧数据
$user->old_name = $user->getOriginal('name');
}
public function updated(User $user)
{
// 更新后写入日志
\Log::info("用户 {$user->id} 已更新");
}
public function deleted(User $user)
{
// 软删除或硬删除时清理关联数据
$user->posts()->delete();
}
}
有多种方式可以注册观察者,推荐在 AppServiceProvider 中注册:
编辑 app/Providers/AppServiceProvider.php:
use App\Models\User;
use App\Observers\UserObserver;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
User::observe(UserObserver::class);
}
}
一旦注册,所有 User 模型的生命周期事件都会通知该观察者。
观察者可以监听以下模型事件方法:
注意:如果在 creating 或 updating 中返回 false,会取消保存操作。
基本上就这些。观察者让模型事件处理更清晰,避免把业务逻辑塞进模型或控制器。只要记得及时注册,就能顺利运行。
以上就是Laravel观察者模式如何使用_Laravel Model Observer配置的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号