2015-12-28 2 views
3

Так что я пытаюсь записать что-то простое, когда новый заказ создается в приложении 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\[email protected]' 
     ); 
    } 

    /** 
    * 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)); 

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

+0

Вам необходимо зарегистрировать свое мероприятие в качестве слушателя, например https://laravel.com/docs/5.1/events#registering-events-and-listeners, добавили ли вы слушателя с вашим мероприятием? –

ответ

2

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

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

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

+0

Мне было интересно, не хватает ли где-нибудь чего-то маленького. Спасибо. – Rohan

 Смежные вопросы

  • Нет связанных вопросов^_^