【发布时间】:2015-04-10 07:05:08
【问题描述】:
我不知道如何将标头添加到来自中间件的响应中。我同时使用了->header(...) 和->headers->set(...),但都给出了错误。那你是怎么做到的呢?
首先我尝试了
public function handle($request, Closure $next) {
$response = $next($request);
$response->headers->set('refresh', '5;url=' . route('foo'));
return $response;
}
这与Illuminate\Http\Middleware\FrameGuard.php 中的相同,但它给出了
在非对象上调用成员函数 set()
我第二次尝试
public function handle($request, Closure $next) {
$response = $next($request);
$response->header('refresh', '5;url=' . route('foo'));
return $response;
}
但这给了
方法 [header] 在视图中不存在。
那么如何从中间件添加标头?
【问题讨论】:
-
尝试调试,执行如下代码 echo get_class($response); print_r(get_class_methods($response));你看到了什么?
-
第二个选项使用
$response->header->set('refresh','...')而不是$response->header('refresh','...')。 Explanation