大家圣诞节快乐!
我是 Laravel 的新手。有一个初学者问题,当我试图使用服务提供商和模型事件来记录更新信息时。
我按照在线文档的指导操作:https://laravel.com/docs/5.3/eloquent#events
把所有代码放在一起后,我发现模型事件仅在创建用户时触发,但在编辑用户时从未记录任何内容。
我错过了什么吗?感觉 $user 没有被正确地分配。它来自哪里?来自其他服务提供程序吗?
非常感谢任何解释或提示!
<?php
namespace App\Providers;
use App\User;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
User::creating(function ($user) {
Log::info('event creating');
});
User::created(function ($user) {
Log::info('event created');
});
User::updating(function ($user) {
Log::info('event updating');
});
User::updated(function ($user) {
Log::info('event updated');
});
User::saving(function ($user) {
Log::info('event saving');
});
User::saved(function ($user) {
Log::info('event saved');
});
User::deleting(function ($user) {
Log::info('event deleting');
});
User::deleted(function ($user) {
Log::info('event deleted');
});
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
//
}
}
delete
。只有在创建模型对象时,模型才会触发相关事件。这意味着它只会在你使用find
、get
、first
来检索对象时才会触发 :) - Lionel Chan