Laravel 5.8
Flash Sessionに値を持たせてリダイレクトしようとしたが、なぜかFlash Sesionが消えてしまっていた。デバッグすると二回アクセスしている模様(リダイレクトだけでなく、他のページも二回アクセスしていることが判明)
自身でカスタマイズしたMiddlewareが悪さをしていた。
middleware.php
$next($request);
を実施している箇所が一つのミドルウェアで複数ある場合に発生する。
例えば、フレームワークのミドルウェアのhandleメソッドをオーバーライドして親クラスに渡す場合と独自で処理をするなどの分岐をする際は、下記のようにして二回リクエストを飛ばさないようにしてあげましょう。
私の場合はparent::handleにreturnをつけ忘れていた。
middleware.php
public function handle($request, Closure $next)
{
if (/*何かしらの分岐*/) {
return parent::handle($request, $next);
}
return $next($request);
}
参考
https://stackoverflow.com/questions/59377912/laravel-why-every-route-is-executed-twice