Laravelのイベント処理でリダイレクトさせたい時の対策
.イベントって何かと便利だから、共通処理をイベント使って書きたくなります。
リダイレクト処理もそうしたい。って思ったのがきっかけ。
で、いろいろリスナ書いてみるも、できなかったので、解決策を書き残しておきます。
Event不可。MiddlewareかControllerに。
Eventはバックグラウンドタスクとしてコールされるので、リダイレクト処理描いても無駄だよって。
参考:firing a redirect from an event
だから、ログイン後に特殊なリダイレクトのロジックを挟みたいときは、
- コントローラのログイン処理の後でリダイレクトのロジックを挟むか、
- ミドルウェアにリダイレクトのロジックを記述
のいずれかにしましょう。
イベントリスト
イベントのリストはこちらにまとまってる。
概ね、次のようなところにあるよう。
- Auth
- Cache
- Consoleコマンド
- Databaseのトランザクション
- Log
- Notification
- Queue
- Redis
リファレンス本にもイベントのこと書いてたような気がするので、後でチェックする。