Laravel переслать запрос на другой url

Laravel ловит входящие запросы и хочет изменить url и метод, а все остальные параметры $request оставить.

Не очевидно как это сделать. Собирать "руками" новый запрос возникнут проблемы с тем в какое поле писать параметры ['form_params'] или ['multipart'] в зависимости от заголовка.

    public function index(Request $request){
        $new_method = 'POST'; // задаем новый метод
        $new_url = 'www.ru'; // новый url

        $params['query'] = $request->query(); // добавляем GET параметры
        $params['headers'] = $request->header(); // добавляем заголовки из старого url

        $client = new Client();
        $response = $client->request($new_method, $new_url, ....?);
    }

Возможно вместо $client->request стоит использовать другой метод?


Ответы (1 шт):

Автор решения: Вадим Александру

Можно таким образом

public function makeRequest(Request $request, string $method, string $new_url) {

    $pendingRequest = Http::withHeaders($request->headers->all());
    switch ($method) {
        case 'get' : return $pendingRequest->get($new_url, $request->all());
        case 'post': return $pendingRequest->post($new_url, $request->all());
        default: throw new \InvalidArgumentException();
    }
}
→ Ссылка