我正在尝试使用中间件向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"和"动作",它运作良好,但有时参数会消失,所以如果有更好的方式我感兴趣。