IT序号网

php之Laravel 观察者不工作

EasonJim 2024年09月07日 编程语言 15 0

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

app.php

  'providers' => [ 
        ... 
         App\Providers\CasesManagerServiceProvider::class, 
] 

CasesManagerServiceProvider.php
class CasesManagerServiceProvider extends ServiceProvider 
{ 
 
    public function boot( ) 
    { 
 
        Cases::observe(CasesObserver::class); 
    } 
 
    public function register() 
    { 
 
    } 
 
} 

CasesObserver.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'); 
    } 
} 

案例.php
class Cases extends Model 
{ 
    const UPDATED_AT = 'modified_at'; 
 
    protected $dispatchesEvents = [ 
    'updating' => CasesObserver::class, 
    'updated'  => CasesObserver::class, 
    'creating' => CasesObserver::class, 
    'saved'    => CasesObserver::class, 
]; 
} 

请您参考如下方法:

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

希望有用


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!