Я пытаюсь вызвать событие в моем контроллере. Это событие должно достигнуть слушателя. Слушатель должен отправить электронное письмо. Но слушатель никогда не достигнет. Телескоп говорит, что мое событие не имеет списка. Почему к моему событию не прикреплен список участников?
Контроллер:
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();
//
}
}
Мое событие называется, но оно не дошло до электронной почты в моем слушателе.
В телескопе написано, что у моего мероприятия нет слушателя.