Andaian
Sehelaithread
(帖子) 预加载 comments
(评论)和 comments.user
(pengguna yang komen)
Biasanya anda boleh mendapatkannya dengan hanya satu baris kod
$thread = Thread::with('comments', 'comments.user')->first();
Tiada masalah dengan ini, dan ia boleh disoal dan dipaparkan dengan baik.
$comment = $thread->comments[0]; // Comment Model
$user = $comment->user; // User Model
Tetapi permintaan semasa ialah: jika data pengguna yang telah mengulas dipadamkan, data ulasan yang berkaitan secara semula jadi tidak boleh dipaparkan, jika tidak, maklumat tersebut akan menjadi tidak lengkap (adakah ini permintaan biasa, bukan?)
Maka secara logiknya, hanya ada inner join
查询就可以过滤掉不符合的数据.Laravel
的Eloquent
目前我只查到with
kaedah
Keperluan ini boleh diselesaikan dengan mudah melalui Yii
的ActiveRecord
$thread = Thread::find()->innerJoinWith(['comments', 'comments.user'])->one();
Saya tidak begitu mengenalinya, jadi saya ingin bertanya kepada pakar dalam bidang ini bagaimana untuk menyelesaikannya!Laravel
Penyertaan dalam pembina pertanyaan dalam laravel lalai kepada gelagat gabungan dalam, manual mengatakan demikian
ORM yang fasih tidak mempunyai syarat pertanyaan penyertaan langsung, tetapi terdapat penyelesaian, seperti yang dinyatakan di atas.
Tetapi saya biasanya tidak menggunakan ORM kerana sebab prestasi. Saya menggunakan Query Builder.
Tulis sahaja sertai dalam perhubungan, ->mempunyaiRamai()->sertai()->di mana() Anda boleh menulisnya mengikut kehendak anda.
Sebenarnya, apa yang saya tanya adalah mengenai penggunaan ini adalah perkara biasa
Ini dilaksanakan dalamrel
Dan
laravel
pada masa ini saya hanya melihat satudengan
rails
里都是有实现的而
laravel
目前我看到的只有一个with
rails
里有preload
、includes
、Eager load
、Joins
, 可以来区别eager loading
数据的方式.这里有篇文章来讲解
http://www.mamicode.com/info-...
而
Yii
的ActiveRecord
也有with
,joinWith
(inner join, left join ....)innerJoinWith
, 来根据需求做eager loading
其他的我就不查了. 并不是我要损rel mempunyai memuatkan data yang berbeza.
🎜Danlaravel
, 我是到现在也没有觉得laravel
的Eloquent
pramuat
,termasuk
,Eager load
,Sertai
, anda boleh datang di sini Cara berbezaBerikut ialah artikel untuk menerangkan
http://www.mamicode.com/info-...
Yii
'sActiveRecord
juga mempunyaiwith
,joinWith
(gabungan dalam, sertai kiri....)innerJoinWith
, untuk melakukanmemuat dengan sabar
mengikut keperluan🎜 🎜Saya tidak akan menyemak perkara lain Bukannya saya mahu merosakkanlaravel
, tetapi saya masih tidak fikirlaravel
'sEloquent
. sangat berkuasa 🎜