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();
}
}