微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – laravel Eloquent模型更新事件未被触发

圣诞快乐的家伙!

我是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()
    {
        //
    }
}
您需要从数据库中检索用户,然后保存该用户以触发事件.例如:

这不会触发更新事件:

User::where('id',$id)->update(['username' => $newUsername]);

这将触发更新事件:

User::find($id)->update(['username' => $newUsername]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。