现在为了获取数据,我从控制器调用方法,该方法以 JSON 形式返回数据:
return response()->json([$data]);
我可以添加此响应全局数据吗?并合并这个
$data
?
例如,我有一个全局
$user
对象,我想在每个 HTTP 响应中放弃该对象,以避免每个方法中出现以下条目:
return response()->json(["data" => $data, "user" => $user]);
@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;
}
希望这有帮助!