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

标签 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]);

关于php - laravel Eloquent 模型更新事件未被触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41295032/

相关文章:

php - 在 php/html 文档中使用 Css

mysql - 在 Laravel Eloquent 中使用 MySQL PASSWORD()

php - Laravel - 使用 eloquent 在开始日期和结束日期之间选择行

php - Laravel 如何返回具有最高值的整个项目数据

model - laravel: Eloquent 例子将数据插入数据库

php - 使用 DB::table() 或 Model::all() Laravel 的 Eloquent

php - 拉取在另一个表 codeigniter 中不可用的记录

javascript - 无法加载资源 : braintree js php integration aws ec2 lamp stack

php - memcached 或 MongoDB 以减轻繁重的数据库调用

php - Laravel 4 - 试图获取非对象的属性