如何从 Laravel RedirectResponse 获取重定向路由?

所以我正在尝试测试我的 laravel 中间件,它将返回重定向。


如果请求不满足中间件的要求,则该请求将被重定向redirect()->route('name')


我尝试像这样从中间件获取返回值


$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>

那么如何从 Location 标签获取 url 呢?或者如何从 laravel redirectResponse 获取重定向网址?


我尝试浏览https://laravel.com/api/5.8/Illuminate/Http/RedirectResponse.html#method_content上的文档,但没有显示重定向路由的方法。


我需要路线来断言它以获得成功的测试结果。


长风秋雁
浏览 84回答 1
1回答

翻翻过去那场雪

继承有方法的Illuminate\Http\RedirectResponse类:Symfony\Component\HttpFoundation\RedirectResponsegetTargetUrl$response->getTargetUrl();相反,您可以将其用于assertRedirect测试目的。
打开App,查看更多内容
随时随地看视频慕课网APP