Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从控制器内访问Laravel响应对象?_Laravel_Header_Response - Fatal编程技术网

如何从控制器内访问Laravel响应对象?

如何从控制器内访问Laravel响应对象?,laravel,header,response,Laravel,Header,Response,我有一个中间件,我在其中为请求/响应分配http头 $response = $next($request)->header('x-robots-tag', 'noindex', false); 在中间件中,我也可以在执行上述操作后应用这一行,以获得我刚刚设置的值 echo $response->headers->get('x-robots-tag'); 但是,我想在中间件之外访问它,但我不确定如何让响应对象返回以实现这一点 如何从控制器中获取$response对象 $res

我有一个中间件,我在其中为请求/响应分配http头

$response = $next($request)->header('x-robots-tag', 'noindex', false);
在中间件中,我也可以在执行上述操作后应用这一行,以获得我刚刚设置的值

echo $response->headers->get('x-robots-tag');
但是,我想在中间件之外访问它,但我不确定如何让响应对象返回以实现这一点

如何从控制器中获取$response对象

$response = \WHAT\GOES\HERE?;
echo $response->headers->get('x-robots-tag');
我似乎不知道在\what\GOES\HERE部分中放置什么来再次访问响应对象

更新#1:
仍然没有解决,但部分问题似乎是为了向中间件内的响应对象添加头标记,需要
$next($request)
,而$next闭包会导致在控制器代码执行后完成响应处理。因此,尽管我不确定如何从控制器中定位响应对象,但看起来它直到后来才分配头标记

我可以直接用PHP在中间件中使用

public function handle($request, Closure $next /*, $tags */)
{
    $tags = array_except(func_get_args(), [0,1]);
    if( count($tags) > 0){
        header('x-robots-tag: ' . implode(', ', $tags));
    }
    return  $next($request);
}
然后将其从
标题列表()中拉出,在控制器中访问它,但这并不理想,而且工作方式超出了laravel方式


在上下文中,想法是将中间件分配给路由,并使用中间件将
x-robots-tag
响应头分配给所需的属性<代码>noindex,nofollow
,无论什么。。。然后,我希望捕捉到这一点,并使用提供给
x-robots-tag
的数据相应地填充等效的元标记。一石二鸟的方法,但事实证明比我想象的要困难。

谢谢。我已多次阅读该文档页面,但尚未找到答案:(谢谢。我已经阅读了该文档页面多次,尚未找到答案。)(