Apabila saya melihat kaedah kelas Illuminate\Support\MessageBag
, kelas kelihatan seperti ini:
gunakan JsonSerializable;
gunakan Illuminate\Contracts\Support\Jsonable;
....
kelas MessageBag melaksanakan Jsonable, JsonSerializable...
/*
* Tukar objek kepada perwakilan JSONnya.
*/
fungsi awam toJson ($pilihan = 0) {
kembalikan json_encode($this->jsonSerialize(), $options);
}
/*
*Tukar objek kepada sesuatu yang boleh bersiri JSON.
*/
fungsi awam jsonSerialize() {
kembalikan $this->toArray();
}
Sila beritahu saya, warga emas, apakah perbezaan antara kaedah toJson dan kaedah jsonSerialize? Bilakah ia akan dipanggil secara tersirat?
Rujuk dokumen: http://php.net/manual/zh/json...
Muat naik kod:
JsonSerializable sendiri secara khusus menghidangkan siri json_encode, dan toJson hanyalah kaedah laravel Jsonable.
Dalam erti kata lain, apabila anda menggunakan json_encode untuk menyerikan objek ini, kaedah jsonSerialize akan dipanggil.
Dan toJson anda biasanya hanya merangkum fungsi json_encode, hanya untuk semantik.
Macam ni?
Saya tidak tahu banyak tentangnya, jadi saya mencarinya untuk anda:
http://www.cnblogs.com/gniele...
Terima kasih atas jemputan!
Oleh kerana saya tidak pernah menggunakan larva, bolehkah anda menghantar kod khusus kaedah toJson dan kaedah jsonSerialize