现在,为了获取数据,我从控制器调用方法,将数据返回为JSON:
return response()->json([$data]);
我可以在此响应中添加全局数据吗?并合并$data
?
例如,我想在每个HTTP响应中提供全局$user
对象,以避免每个方法中的以下条目:
return response()->json(["data" => $data, "user" => $user]);
答案 0 :(得分:6)
@ rnj的答案的替代方案是使用中间件。
https://laravel.com/docs/5.4/middleware#global-middleware
这样您就可以转而使用请求,而不是使用您可能决定以后不需要/需要的帮助函数。
中间件的handle
方法可能类似于:
public function handle($request, Closure $next)
{
$response = $next($request);
$content = json_decode($response->content(), true);
//Check if the response is JSON
if (json_last_error() == JSON_ERROR_NONE) {
$response->setContent(array_merge(
$content,
[
//extra data goes here
]
));
}
return $response;
}
希望这有帮助!
答案 1 :(得分:2)