laravel 观察者不工作

wah*_*dan 3 php laravel laravel-5.3

我正在尝试使用laravel 观察者监听模型事件。问题是当我提交表单(更新或创建新记录)时,什么也没发生。我错过了什么吗?

应用程序.php

  'providers' => [
        ...
         App\Providers\CasesManagerServiceProvider::class,
]
Run Code Online (Sandbox Code Playgroud)

CasesManagerServiceProvider.php

class CasesManagerServiceProvider extends ServiceProvider
{

    public function boot( )
    {

        Cases::observe(CasesObserver::class);
    }

    public function register()
    {

    }

}
Run Code Online (Sandbox Code Playgroud)

案例观察者.php

class CasesObserver
{
    private $cases;

    public function __construct(Cases $cases){
        $this->cases = $cases;
  }


    public function creating(Cases $case)
    {
        dd('creating');
    }

    public function saved(Cases $case)
    {
        dd('saved');
    }

    public function updating($case)
    {
        dd('updating');
    }
    public function updated($case)
    {
        dd('updated');
    }
}
Run Code Online (Sandbox Code Playgroud)

案例.php

class Cases extends Model
{
    const UPDATED_AT = 'modified_at';

    protected $dispatchesEvents = [
    'updating' => CasesObserver::class,
    'updated'  => CasesObserver::class,
    'creating' => CasesObserver::class,
    'saved'    => CasesObserver::class,
];
}
Run Code Online (Sandbox Code Playgroud)

Ali*_*Ali 8

对我来说,问题是在中注册观察者,register() method!
所以当我把它放进去时,boot() method一切都很好!原因是提到的服务提供者中运行方法的顺序听到

希望有用


wah*_*dan 4

好吧,我找到了答案。所有的问题都是当我添加 use app\Observers\CasesObserver;CasesManagerServiceProvider.php不是use App\Observers\CasesObserver;. 是的,Camel 的情况App是问题所在,所以我更改为应用程序,现在一切正常。