あるSEのつぶやき・改

ITやシステム開発などの技術に関する話題を、SEとしての経験から取り上げたり解説したりしています。

LaravelでPOSTリクエストの終わりにGETでリダイレクトする方法

Laravelのよくわからないところに、POST リクエストを受け付けた Controllerで、 redirect('/dummy'); ってやると、リダイレクトがPOSTリクエストになるというのがあります。

それを、POST リクエストを途中で中断して、GET リクエストでリダイレクトする方法です。

これ、かなり悩んだのですが、こんな感じで実現できます。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;

class SampleController extends Controller
{
    public function receivePostRequest(Request $request)
    {
           $path = '/dummy';
            $newRequest = Request::create($path, 'GET', array());

            return Route::dispatch($newRequest);
    }
}

2020/07/12追記

上の方法だとリロード時に問題が起きました。以下の方法で簡単にリダイレクトできます。なんで情報がないんでしょうね?

return response()->redirectTo('/dummy');

stackoverflow.com