模型事件
最后更新于:2022-04-01 15:12:21
Eloquent 模型有很多事件可以触发,让您可以在模型操作的生命周期的不同时间点,使用下列方法绑定事件: `creating`, `created`, `updating`, `updated`, `saving`, `saved`, `deleting`, `deleted`, `restoring`, `restored`。
当一个对象初次被储存到数据库, `creating `和 `created `事件会被触发。如果不是新对象而调用了 `save `方法, `updating `/ `updated `事件会被触发。而两者的 `saving `/ `saved `事件都会被触发。
使用事件取消数据库操作
如果 `creating `、 `updating `、 `saving `、 `deleting `事件返回 `false `的话,就会取消数据库操作
~~~
User::creating(function($user)
{
if ( ! $user->isValid()) return false;
});
~~~
注册事件监听者的方式
您可以在 `EventServiceProvider` 中注册您的模型事件绑定。比如:
~~~
/**
* Register any other events for your application.
*
* @param \Illuminate\Contracts\Events\Dispatcher $events
* @return void
*/
public function boot(DispatcherContract $events)
{
parent::boot($events);
User::creating(function($user)
{
//
});
}
~~~