2

我为我的模型创建了 Observer 来更新相关数据:

<?php

namespace App\Observers;

use App\User;

class UserObserver
{

public function updating(User $user)
    {
        $data = $user->getAttributes();
        dd($data);
        $user->worker->fill($data['worker']);
        $user->push();
    }
}

并将其添加到我的模型中:

protected static function boot()
{
    parent::boot();
    parent::observe(UserObserver::class);
}

但是更新模型时更新方法不会触发:

$user = User::byUsername($username)->first();
$user->update($request->all());

worker.rate_per_hour在请求实例中有值并将其添加到User模型的可填充中。

所以我的问题是,我做错了什么?

4

1 回答 1

0

AppServiceProvider中注册观察者: dir:/app/Providers/AppServiceProvider.php


class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        User::observe(UserObserver::class); // here
    }
}

注意:确保你cleared cache& 解雇了composer dumpauto命令

于 2020-09-09T03:30:47.903 回答