개발 꿀팁/PHP

Laravel의 Json Response에 의한 PHP 기반 인식

Jammie 2022. 8. 9. 14:20
반응형

Controller 계층에서 내가 직접 다른 사람의 방법을 호출했는데, 그가 돌아온 것은 Json Response 객체였다.그 데이터를 가지고 오려고 했더니 잘못된 관행이 생겼다

    //别人的方法
    public function testJsonResponse(Request $request) {
        $data = [];
        $data['messsage'] = "hello";
        return response()->json($data);
    }

    public function getJson(Request $request){
        $result = $this->testJsonResponse($request); //여기서 다른 사람의 json 데이터를 얻고 싶다
        var_dump($result);
    }

postman이 getJson에 접속하면 다음과 같다

object(Illuminate\Http\JsonResponse)#180 (11) {
  ["data":protected]=>
  string(20) "{"messsage":"hello"}"

  ["content":protected]=>
  string(20) "{"messsage":"hello"}"
  ["version":protected]=>
  string(3) "1.0"
  ["statusCode":protected]=>
  int(200)
  ["statusText":protected]=>
  string(2) "OK"
  ["charset":protected]=>
  NULL
  ["original"]=>
  array(1) {
    ["messsage"]=>
    string(5) "hello"
  }
  ["exception"]=>
  NULL
}

처음에 : data 안에 있는 데이터를 보면 그냥 들고 싶다.
그리고 쓰는 방법은
$result.data
여기에서 두 개의 착오를 범했는데, 첫 번째는 당연히 문법상의 착오였다.하나는 작용역의 잘못이다.
PHP에서 객체에 접근하는 속성이나 방법은 모두 ->를 사용하므로자바를 사용하는 습관, 호출하는 습관으로 사용.。
또 하나는 protected 작용 영역의 문제이다.성 또는 방법은 자신 또는 하위 범주에서만 사용할 수 있습니다

    mixed getData(bool $assoc = false, int $depth = 512)
//$assoc을 true로 되돌리기 배열로 설정합니다. false 기본 반환
$jsonArray = $result -> getData(tr)ue)
//물론 제가 나중에 테스트해본 거라서 바로 받아볼 수도 있죠.
$result->original

 

반응형