Как получить маршрут перенаправления из laravel redirectResponse? - PullRequest
3 голосов
/ 13 июля 2020

Итак, я пытаюсь протестировать промежуточное программное обеспечение моего laravel, которое вернет перенаправление.

Если запрос не удовлетворяет требованиям промежуточного программного обеспечения, запрос будет перенаправлен с использованием redirect()->route('name')

I попытался получить возвращаемое значение из промежуточного программного обеспечения, например,

$response = $middleware->handle($request, function ($req) { return $req; }, 'server:summary:view:edit');
\Log::info($response);

$response - это экземпляр Illuminate\Http\RedirectResponse. Когда я делаю \Log::info($response);, я получаю следующий результат.

HTTP/1.0 302 Found
Cache-Control: no-cache, private
Date:          Mon, 13 Jul 2020 08:12:27 GMT
Location:      https://myrandomurl.test/name

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='https://myrandomurl.test/name" />

        <title>Redirecting to https://myrandomurl.test/name</title>
    </head>
    <body>
        Redirecting to <a href="https://myrandomurl.test/name">https://myrandomurl.test/named</a>.
    </body>
</html>

Итак, как мне получить URL-адрес из тега Location? или Как мне получить URL-адрес перенаправления из laravel redirectResponse?

Я попытался просмотреть do c в https://laravel.com/api/5.8/Illuminate/Http/RedirectResponse.html#method_content, но нет метода, который показывает маршрут перенаправления.

Мне нужен маршрут для подтверждения успешного результата теста.

1 Ответ

4 голосов
/ 13 июля 2020

Класс Illuminate\Http\RedirectResponse наследует Symfony\Component\HttpFoundation\RedirectResponse класс, у которого есть метод getTargetUrl:

$response->getTargetUrl();

Вместо этого вы можете использовать assertRedirect для целей тестирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...