지금 그 JSON으로 데이터를 반환 내가 컨트롤러에서 메서드를 호출 데이터를 얻으려면? 그리고 $data
을 병합 하시겠습니까? 예를 들어
나는이 세계 나는 각각의 방법에 다음과 같은 항목을 방지하기 위해 각 HTTP 응답에 버려야 할 $user
목적 : 자신의 PHP 클래스를 생성
return response()->json(["data" => $data, "user" => $user]);
지금 그 JSON으로 데이터를 반환 내가 컨트롤러에서 메서드를 호출 데이터를 얻으려면? 그리고 $data
을 병합 하시겠습니까? 예를 들어
나는이 세계 나는 각각의 방법에 다음과 같은 항목을 방지하기 위해 각 HTTP 응답에 버려야 할 $user
목적 : 자신의 PHP 클래스를 생성
return response()->json(["data" => $data, "user" => $user]);
또는과 Laravel의 응답을 래핑하는 역할을하여 자신의 데이터. 예 :
function jsonResponse($data)
{
return response()->json([
'user' => $user,
'data' => $data,
]);
}
은 그럼 당신은 호출 할 수
return jsonResponse($data);
이 프로그램 DRY을 유지하는 방법의 단순한 예입니다. 성장과 유지가 예상되는 응용 프로그램을 만드는 경우 this과 같은 것을하십시오.
@mj 내 편집을 확인할 수 있습니까? 질문이 다소 불투명하기 때문에 괜찮은지 아닌지 확실하지 않습니다. –
@OmisakinOluwatobi 그래, 그 편집 작동합니다. 실제로 캡슐화 개념을 질문에 따라 명확하게 만듭니다. – ryannjohnson
유일한 문제는'$ user' 변수가 실제로이 함수에서 _being accessible_과 같은 전역 변수 인 경우입니다. 질문 주인이 더 많은 빛을 비춰 주길 바랍니다 ... –
@ 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;
}
희망을!
당신은 당신이 가지고있는 것을 잘 설명 할 수 있습니까? 대답이 이미 주어졌습니다. 이미 질문에 대답합니까? –
주어진 답변 중 하나가 질문에 대한 답변을 제공합니까? –