Почему мой слушатель событий не стреляет в laravel 5?

Поэтому я пытаюсь зарегистрировать что-то простое, когда создается новый заказ в приложении laravel 5, над которым я работаю.

Итак, у меня есть OrderWasCreated событие, которое выглядит так:

<?php

namespace App\Events;

use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

use App\Order;

class OrderWasCreated extends Event
{
use SerializesModels;

public $order;

/**
* OrderWasCreated constructor.
*/
public function __construct(Order $order)
{
$this->order = $order;
}


/**
* Get the channels the event should be broadcast on.
*
* @return array
*/
public function broadcastOn()
{
return [];
}
}

И тогда у меня есть OrderEventListener который выглядит так:

<?php

namespace App\Listeners;

use App\Events\OrderWasCreated;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Contracts\Queue\ShouldQueue;

class OrderEventListener
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}

public function subscribe(Dispatcher $events)
{
$events->listen(
'App\Events\OrderWasCreated',
'App\Listeners\OrderEventListener@onOrderWasCreated'
);
}

/**
* Handle the event.
*
* @param  OrderWasCreated  $event
* @return void
*/
public function onOrderWasCreated(OrderWasCreated $event)
{
\Log::info('Order was created event fired');
}
}

В моем OrderController, У меня есть это в моем магазине метод где-то:

    event(new OrderWasCreated($order));

Тем не менее, когда я создаю новые заказы, я ничего не вижу в своем лог-файле. Что мне не хватает?

3

Решение

Возможно, вы еще не добавили OrderEventListener в subscribe собственностью EventServiceProvider, это должно выглядеть так:

protected $subscribe = [
'App\Listeners\OrderEventListener',
];

Если вы добавили, пожалуйста, запустите php artisan clear-compiled чтобы убедиться, что ваше приложение использует текущую версию классов.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]