Есть ли способ получить список всех моих пользовательских событий в Laravel? Я настроил систему уведомлений, чтобы я мог подписать пользователя на уведомления об определенных событиях. В настоящее время у меня есть определенный вручную список классов:
<?php
namespace App\Http\Controllers;
class ContactController extends Controller
{
private $events;
public function __construct()
{
$this->events = [
App\Events\SomethingHappened::class,
App\Events\SomethingElseHappened::class,
];
}
public function edit(Contact $contact)
{
$events = $this->events;
return view("contacts.edit")->with(compact("contact", "events"));
}
}
А затем в шаблоне я извлекаю свойство publi c stati c, чтобы получить описание, и выкидываю его в поле выбора.
<select name="events[]" multiple="multiple">
@foreach ($events as $event)
<option value="{{ $event }}">{{ __($event::$description) }}</option>
@endforeach
</select>
Это прекрасно работает, но сохранение списка событий, определенных вручную, в моем контроллере кажется пустой тратой времени. В идеале я хотел бы просто найти способ автоматически получать список всех моих событий.
Я думал о сканировании через каталог App/Events
и фильтрации событий без свойства $description
, но это кажется очень хакерским. Любые другие варианты?