Dan*_*heu 30 save updates laravel
我需要在save()或update()之后或之前生成一个函数来调用,但我不知道该怎么做.我想我需要来自save()update()的回调,但我不知道该怎么办.谢谢
Mau*_*sas 80
在模型中,您可以添加一个boot()方法,该方法允许您管理这些事件.
例如,拥有User.php模型:
class User extends Model
{
public static function boot()
{
parent::boot();
self::creating(function($model){
// ... code here
});
self::created(function($model){
// ... code here
});
self::updating(function($model){
// ... code here
});
self::updated(function($model){
// ... code here
});
self::deleting(function($model){
// ... code here
});
self::deleted(function($model){
// ... code here
});
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看所有可用事件:https://laravel.com/docs/5.2/eloquent#events
Roh*_*tri 10
使用此命令创建提供程序
php artisan make:provider ProviderClassName
Run Code Online (Sandbox Code Playgroud)
然后在启动函数中定义模型的回调
Model::created(function($model){
//Do you want to do
});
Run Code Online (Sandbox Code Playgroud)
可用回调列表:
Model::creating(function($model){});
Model::updated(function($model){});
Model::updating(function($model){});
Model::deleted(function($model){});
Model::deleting(function($model){});
Model::saving(function($model){});
Model::saved(function($model){});
Run Code Online (Sandbox Code Playgroud)
这仅在您的模型上发生事件后才有效。
为您的模型创建一个观察者
php artisan make:observer UserObserver --model=User
Run Code Online (Sandbox Code Playgroud)
这将在您的模型上创建一个事件观察者
class UserObserver
{
/**
* Handle the User "created" event.
*
* @param \App\Models\User $user
* @return void
*/
public function created(User $user)
{
//
}
/**
* Handle the User "updated" event.
*
* @param \App\Models\User $user
* @return void
*/
public function updated(User $user)
{
//
}
/**
* Handle the User "deleted" event.
*
* @param \App\Models\User $user
* @return void
*/
public function deleted(User $user)
{
//
}
/**
* Handle the User "forceDeleted" event.
*
* @param \App\Models\User $user
* @return void
*/
public function forceDeleted(User $user)
{
//
}
}
Run Code Online (Sandbox Code Playgroud)
您必须在您的 ServiceProvider 之一的 boot 方法中注册此观察者,最好是 AppServiceProvider
public function boot()
{
User::observe(UserObserver::class);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
46386 次 |
最近记录: |