将URL参数添加到具有中间件的所有路由

时间:2017-11-17 11:11:32

标签: php apache laravel middleware laravel-5.5

我正在尝试使用中间件向laravel 5.5上的所有路由添加url参数。

切换路线后参数必须保持不变。

我尝试在中间件中使用重定向,但它只是将url添加到my参数的默认值而不查看是否更改

public function handle($request, Closure $next)
{
    if (!str_contains($request->getRequestUri(), 'persona=') && str_contains($request->getRequestUri(), '?'))
    {
        $url = str_replace($request->getBaseUrl(), '', $request->getRequestUri());
        return redirect($url."&persona=".$_SERVER['PHP_AUTH_USER']);
    }
    if (!str_contains($request->getRequestUri(), 'persona=') && !str_contains($request->getRequestUri(), '?'))
    {
        $url = str_replace($request->getBaseUrl(), '', $request->getRequestUri());
        return redirect($url."?persona=".$_SERVER['PHP_AUTH_USER']);
    }
    return $next($request);
}

使用此函数时,参数将始终采用值" $ _ SERVER [' PHP_AUTH_USER']"因为它无法看到参数位于最后请求的网址上。

编辑:我找到了一个更好的方法来获得以下参数,我尝试修改laravel函数" route"," url"和"动作",它运作良好,但有时参数会消失,所以如果有更好的方式我感兴趣。

0 个答案:

没有答案