我正在使用 Laravel 框架开发一个 Web 应用程序。我正在尝试在我的应用程序中使用事件和侦听器。但是该事件已被触发,并且未触发触发事件的侦听器。
这是我的控制器动作
public function store(Request $request)
{
//other code
$item = Item::create($request->all())
broadcast(new ItemCreated($item));
return "Item created successfully";
}
这是我的 Events\ItemCreated.php
class ItemCreated
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $item;
public function __construct($item)
{
$this->item = $item;
}
}
然后我有那个事件的监听器。
听众/电子邮件订阅用户.php
class EmailSubscribedUsers
{
public function __construct()
{
//this constructor is not triggered
}
public function handle(ItemCreated $event)
{
//This method is not fired
}
}
在 EventServiceProvider 中,我像这样注册了事件和侦听器
protected $listen = [
ItemCreated::class => [
EmailSubscribedUsers::class
]
];
事件被触发。但是听众没有被解雇。为什么?怎么了?
我尝试了以下解决方案。
php artisan optimize
composer dumpautoload
php artisan clear-compiled