Rumah > Artikel > pembangunan bahagian belakang > Bilakah saya harus menggunakan `$model->relation()` lwn. `$model->relation()` dalam Laravel Eloquent?
relation()` lwn. `$model->relation()` dalam Laravel Eloquent? " />
Dalam ORM Eloquent Laravel, memahami perbezaan antara $model-> ;relation(); dan $model->relation() adalah penting.
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>
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>Menggunakan $store->distributors()->get() ialah alternatif yang lebih mudah, tetapi ia menghasilkan hasil yang sama.$model->relationLaravel 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
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!