Почему мой список не привязан к моему событию? - PullRequest
0 голосов
/ 31 мая 2019

Я пытаюсь вызвать событие в моем контроллере. Это событие должно достигнуть слушателя. Слушатель должен отправить электронное письмо. Но слушатель никогда не достигнет. Телескоп говорит, что мое событие не имеет списка. Почему к моему событию не прикреплен список участников?

Контроллер:

namespace App\Http\Controllers;

use App\Match;
use App\Tournament;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use App\Events\ToernooiMail as ToernooiMailEvent;

class TournamentController extends Controller
{
 public function store()
 {

    $toernooi = Tournament::create(request([
        'name' => 'name',
    ]));

    event(new ToernooiMailEvent($toernooi));

    return redirect('tournaments');
 }

Событие, которое достигнуто для:

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Foundation\Events\Dispatchable;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class ToernooiMail
{
 use Dispatchable, InteractsWithSockets, SerializesModels;

 public $toernooi;

 /**
  * Create a new event instance.
  *
  * @return void
  */
 public function __construct($toernooi)
 {
     $this->toernooi = $toernooi;
 }

 /**
  * Get the channels the event should broadcast on.
  *
  * @return \Illuminate\Broadcasting\Channel|array
  */
 public function broadcastOn()
 {
     return new PrivateChannel('channel-name');
 }
}

Список, который не достигнут:

 <?php

 namespace App\Listeners;

 use App\Events\ToernooiMail;
 use Illuminate\Queue\InteractsWithQueue;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use App\Mail\toernooiMail as toernooiEmail;


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

}

/**
 * Handle the event.
 *
 * @param  ToernooiMail  $event
 * @return void
 */
public function handle(ToernooiMail $event)
{
    \Mail::to('dannylenoir@gmail.com')->send(
        new toernooiEmail($event->toernooi)  
    );
}
}

EventServiceProvider:

<?php

namespace App\Providers;

use Illuminate\Support\Facades\Event;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as        ServiceProvider;
use App\Events\ToerooiMail;
use App\Listeners\SendToernooiMail;

class EventServiceProvider extends ServiceProvider
{
  /**
   * The event listener mappings for the application.
   *
   * @var array
   */
  protected $listen = [
      Registered::class => [
        SendEmailVerificationNotification::class,
      ],

    ToerooiMail::class => [
        SendToernooiMail::class,
    ],
 ];

  /**
   * Register any events for your application.
   *
   * @return void
   */
 public function boot() 
      parent::boot();

        //
    }

}

Мое событие называется, но оно не дошло до электронной почты в моем слушателе. В телескопе написано, что у моего мероприятия нет слушателя.

...