Как запустить события после проверки пользователя в laravel?
Я следовал всем инструкциям в https://laravel.com/docs/5.8/verification , а также несколько учебных пособий по этой теме, но события никогда не срабатывают
Пользовательская модель
use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Contracts\Auth\MustVerifyEmail; class User extends Authenticatable implements MustVerifyEmail { use HasApiTokens,Notifiable; // dozens of orm rel methods here...
На вершине моей web.php файл маршрутов
Auth::routes(['verify' => true]);
Ремесленный маршрут:список говорит
| Вам|руководителя | электронной почты-проверка/проверка/{маркер} | электронная почта-
verification.check | App\Http\Controllers\Auth\RegisterController@getVerification | web,guest |
У меня есть это свойство в моем VerificationController:
protected $redirectTo = '/home';
И он действительно пытается посетить эту ссылку, что означает, что строительные леса действительно работают
В моем eventsServiceProvider у меня есть
protected $listen = [ 'App\Events\Event' => [ 'App\Listeners\EventListener', ], 'Illuminate\Auth\Events\Verified' => [ 'App\Listeners\LogVerifiedUser', ] ]
Я запустил команду make:event, и она создала это событие для меня в этом каталоге, который я отредактировал, чтобы передать мои данные по выбору слушателю. Однако регистрация чего-либо внутри события или прослушивателя не имеет никакого эффекта. Вызов БД, который я намереваюсь сделать внутри него, не вставляется.
в LogVerifiedUser у меня есть
public function handle(Verified $event) { $user = $event->user; // use the data's properties here and return nothing
В самом событии мы имеем
class Verified { use Dispatchable, InteractsWithSockets, SerializesModels; public $user; /** * Create a new event instance. * * @return void */ public function __construct(\App\User $user) { $this->user = $user; } /** * Get the channels the event should broadcast on. * * @return \Illuminate\Broadcasting\Channel|array */ public function broadcastOn() { return new PrivateChannel('channel-name'); } }
Скажите, есть ли еще одна часть приложения, которая может вас заинтересовать. Большое спасибо
Что я уже пробовал:
Я проверил метод getVerification, который обрабатывает маршрут проверки, и в нем не срабатывает такое событие. Должен ли я вызвать родительский метод в переопределении, а затем отправить свое желаемое событие внутри него? Я предполагаю, что это должно сработать, хотя я еще не пробовал этого делать-причина этой нерешительности заключается в том, что если я должен вручную отправить это событие, то по крайней мере один из учебников намекнет или упомянет его. Является ли событие запущенным где-то, что я случайно пропустил, или Я свободен вызвать его?