relation()` lwn. `$model->relation()` dalam Laravel Eloquent?
" />
Perbezaan antara Panggilan Kaedah $model->relation(); dan $model->relation in Eloquent
Dalam ORM Eloquent Laravel, memahami perbezaan antara $model-> ;relation(); dan $model->relation() adalah penting.
$model->relation()
Memanggil $model->relation() secara terus memanggil fungsi hubungan yang ditakrifkan dalam model. Fungsi ini biasanya menyerupai:
<code class="php">public function distributors()
{
return $this->hasMany('Distributor');
}</code>
Salin selepas log masuk
Dengan memanggil $store->distributors(), anda memperoleh nilai pulangan $this->hasMany('Distributor'), yang merupakan contoh IlluminateDatabaseEloquentRelationsHasMany.
Bila Menggunakan $model->relation(): Kaedah ini berharga apabila anda perlu menyesuaikan pertanyaan hubungan dengan lebih lanjut sebelum melaksanakannya >
<code class="php">$distributors = $store->distributors()->where('priority', '>', 4)->get();</code>
Salin selepas log masuk
Menggunakan $store->distributors()->get() ialah alternatif yang lebih mudah, tetapi ia menghasilkan hasil yang sama.
$model->relation
Laravel menggunakan teknik di sebalik tabir yang membolehkan akses terus kepada hasil perhubungan kerana sifat menggunakan $model->relation sebenarnya tidak mengakses harta sedia ada. Sebaliknya, Laravel memintas panggilan ini dan mengarahkannya ke __get().
Kaedah ini akhirnya memanggil getAttribute() dengan nama sifat ('pengedar'), yang meneruskan untuk menyemak sama ada hubungan itu dicache ('hubungan' tatasusunan). Jika tidak, dan jika kaedah perhubungan wujud, ia cuba memuatkannya (getRelationshipFromMethod). Akhir sekali, model mendapatkan semula hasil daripada perhubungan melalui getResults(), yang melaksanakan pertanyaan.
Pada dasarnya, $model->relation adalah bersamaan dengan $model->relation()->get (), mengembalikan hasil perhubungan secara langsung.
Kesimpulan
$model->relation() mengembalikan objek perhubungan itu sendiri, membenarkan penyesuaian pertanyaan selanjutnya.-
$model->relation terus mendapatkan semula hasil pertanyaan, menyediakan jalan pintas yang mudah.-
Memahami perbezaan ini adalah penting untuk penggunaan Fasih yang berkesan.
Atas ialah kandungan terperinci Bilakah saya harus menggunakan `$model->relation()` lwn. `$model->relation()` dalam Laravel Eloquent?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!