我正在尝试在应用之后添加中间件,以便我可以向API调用添加时间戳和其他信息。我已正确设置路由,因为它正确到达我的中间件,但当我到达中间件时,会抛出一个错误:
在非对象上调用成员函数put()
我的中间件有以下代码:
public function handle($request, Closure $next)
{
$response = $next($request);
if($response->headers->get('content-type') == 'application/json')
{
$collection = $response->original;
//dd( $collection );
$collection->put('timestamp', date("Y-m-d H:i:s"));
$response->setContent($collection);
}
return $response;
}
我试过dd($ collection),但它返回应该返回的对象,所以我不知道出了什么问题。有人能指出我正确的方向吗?
谢谢!
答案 0 :(得分:0)
根据@ jedrzej.kurylo的建议,我做了以下更改:
$response = $next($request);
if($response->headers->get('content-type') == 'application/json')
{
$collection = array();
$collection['timestamp'] = Carbon::now();
$collection['data'] = $response->original;
$response->setContent($collection);
}
return $response;
$ response-> original似乎返回一个数组,而不是一个由响应对象组成的对象。 谢谢!