laravel有许多事件模型,例如creating
,saved
等。
https://laravel.com/docs/5.5/eloquent#events
我唯一不懂的东西。该活动为retrieved
和restored
。有人可以通过示例向我解释这个问题吗?
答案 0 :(得分:2)
检索模型时会触发检索到的事件。
在soft deletion之后恢复模型时会触发恢复的事件。
您可以查看来源以深入了解Eloquent工作流程。请here查看已恢复,here查看已检索。
因此,例如,您可以为User模型创建observer,并为您感兴趣的事件实现侦听器。
<?php
// app/Observers/UserObserver.php
namespace App\Observers;
use App\User;
class UserObserver
{
public function retrieved(User $user)
{
//
}
public function restored(User $user)
{
//
}
}
然后在AppServiceProvider中注册观察者。
<?php
// app/Providers/AppServiceProvider.php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
use App\User;
use App\Observers\UserObserver;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
User::observe(UserObserver::class);
}
public function register()
{
//
}
}
答案 1 :(得分:1)
基于laravel docs当从数据库中检索现有模型时,将触发检索到的事件。
例如,如果您的应用程序中有用户模型,则必须在用户模型中定义如下所示的代码。
protected $dispatchesEvents = [
'retrieved' => \App\Events\UserRetrieved::class,
];