laravel model $事件未被触发

时间:2017-09-23 04:39:17

标签: php laravel events listener

我正在创建一个新的应用程序,在该应用程序创建文章时将显示通知。我尝试过使用事件和监听器。 我的App \ Article.php ... protected $ events = [     '创建' =>活动\ ArticleWasPublished ::类 ]。 ... 我的App \ Providers \ EventServiceProvider.php protected $ listen = [     '应用程序\活动\ ArticleWasPublished' => [         '应用软件\监听\ NotifyUsers&#39 ;,     ] ]。 我的App \ Events \ ArticleWasPublished.php ... 使用App \ Article; ... {     public $ article;     公共职能__construct(文章$ article)     {         $ this-> article = $ article;     } ... 我的App \ Listeners \ NotifyUsers.php 使用App \ Notification; ... 公共函数句柄(ArticleWasPublished $ event) {     通知::创建([         '的article_id' => $事件 - >&物品─GT; ID,         '消息' => '创建了一篇新文章'     ]);     的var_dump('东西&#39); } 我在这做错了什么? 我的问题是,在创建新文章时,未创建新通知。我甚至没有收到任何错误。

1 个答案:

答案 0 :(得分:3)

据我所知,在Laravel 5.5中,该属性名为$ dispatchesEvents,而不是$ events。你使用的是这个版本吗?

https://laravel.com/docs/5.5/eloquent#events

如果您要从旧版本迁移,则需要执行以下更改之一:

  

模型$ events属性

     

模型上的$ events属性应重命名为   $ dispatchesEvents。这种变化是因为大量的   需要定义事件关系的用户,这导致了一个   与旧的财产名称冲突。