Illuminate\Support\MessageBag
클래스 메소드를 보면 클래스는 다음과 같습니다:
JsonSerialized를 사용합니다.
Illuminate\Contracts\Support\Jsonable을 사용하세요.
....
MessageBag 클래스는 Jsonable, JsonSerialized...를 구현합니다.
/*
* 객체를 JSON 표현으로 변환합니다.
*/
공개 함수 toJson($options = 0) {
return json_encode($this->jsonSerialize(), $options);
}
/*
*객체를 JSON 직렬화 가능한 것으로 변환합니다.
*/
공개 함수 jsonSerialize() {
$this->toArray()를 반환합니다.
}
선배님들, toJson 메소드와 jsonSerialize 메소드의 차이점이 무엇인지 알려주세요. 언제 암시적으로 호출되나요?
天蓬老师2017-05-16 13:02:38
문서 참고: http://php.net/manual/zh/json...
코드 업로드:
JsonSerialized 자체는 특별히 json_encode 직렬화를 제공하며 toJson은 laravel의 Jsonable 메서드일 뿐입니다.
즉, json_encode를 사용하여 이 객체를 직렬화하면 jsonSerialize 메서드가 호출됩니다.
그리고 toJson은 일반적으로 단지 의미를 위해 json_encode 함수를 캡슐화합니다.
phpcn_u15822017-05-16 13:02:38
초대해주셔서 감사합니다!
저는 Larval을 사용해본 적이 없기 때문에 toJson 메소드와 jsonSerialize 메소드의 구체적인 코드를 게시해 주실 수 있나요