programing

Larabel 4에서 웅변 모델을 JSON으로 반환

css3 2023. 3. 31. 22:36

Larabel 4에서 웅변 모델을 JSON으로 반환

브라우저에 JSON으로 반환하려면 어떻게 해야 하나요?아래 두 가지 방법의 차이점은 무엇입니까?둘 다 효과가 있는 것 같아요.

#1:

return Response::json($user->toArray());

#2:

return $user->toJson();

실제 전송된 데이터는 동일하지만...

#1 송신Content-Type:application/json브라우저에

#2 송신Content-Type:text/html

#1이 더 정확하지만 Javascript에 따라 달라집니다.JSON 콘텐츠의 올바른 유형은 무엇입니까?를 참조해 주세요.

단, 반품하는 것이 훨씬 간단합니다.자동으로 JSON으로 반환되고 Content-Type이 올바르게 설정됩니다.

return $model;

Response::json($someArray)는 JSON 데이터를 반환하는 일반적인 방법입니다.

return $model->toJson()는 모델을 JSON으로 반환하는 것에 한정되어 있습니다.이는 웅변 모델을 사용할 때 제가 선호하는 접근 방식입니다.

#1에서는 먼저 Array로 변환한 후 JSON으로 변환합니다.이것은 약간 장황한 것 같습니다.

그런 의미에서 발신자에게 JSON을 반환할 경우에는 2번으로 하겠습니다.

또, L4에서는, 어설런트 모델이 문자열에 캐스트 될 때마다, 자동적으로 JSON으로 변환되는 것에 주의해 주세요.따라서 매뉴얼에서 다음 예시와 같이 루트에서 직접 JSON 데이터를 반환할 수 있습니다.

Route::get('users', function()
{
    return User::all();
});

상세한 것에 대하여는, http://four.laravel.com/docs/eloquent#converting-to-arrays-or-json 를 참조해 주세요.

이것으로 5.5레벨의 문제가 해결되었습니다.

function allUsers()
{
    $users = \App\User::all();
    $usersJson = json_encode($users);
    return $usersJson;
}

언급URL : https://stackoverflow.com/questions/15602129/returning-an-eloquent-model-as-json-in-laravel-4