Illuminate\Support\MessageBag
クラスのメソッドを見ると、クラスは次のようになります。
JsonSerializable を使用します。
Illuminate\Contracts\Support\Jsonable を使用します。
....
クラス MessageBag は Jsonable、JsonSerializable を実装します...
/*
* オブジェクトを JSON 表現に変換します。
*/
パブリック関数 toJson ($options = 0) {
return json_encode($this->jsonSerialize(), $options);
}
/*
*オブジェクトをJSONシリアル化可能なものに変換します。
*/
パブリック関数 jsonSerialize() {
return $this->toArray();
}
先輩方、toJsonメソッドとjsonSerializeメソッドの違いを教えてください。いつ暗黙的に呼び出されますか?
天蓬老师2017-05-16 13:02:38
ドキュメントを参照してください: http://php.net/manual/zh/json...
コードをアップロードしてください:
JsonSerializable 自体は特に json_encode シリアル化を提供し、toJson は単なる laravel の Jsonable メソッドです。
言い換えると、json_encode を使用してこのオブジェクトをシリアル化すると、jsonSerialize メソッドが呼び出されます。
そして、toJson は通常、セマンティクスのためだけに json_encode 関数をカプセル化するだけです。
phpcn_u15822017-05-16 13:02:38
ご招待ありがとうございます!
larvalを使ったことがないので、toJsonメソッドとjsonSerializeメソッドの具体的なコードを投稿していただけませんか