国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Laravel eloquent with如何join查詢
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-05-16 16:51:58
0
6
1435

假設(shè)

一條thread(帖子) 預(yù)加載 comments(評(píng)論)和 comments.user (評(píng)論的用戶)

通常一行代碼就可以取到

$thread = Thread::with('comments', 'comments.user')->first();

這個(gè)是沒有問題的,并且能很好的查詢并顯示出來(lái).

$comment = $thread->comments[0]; // Comment Model
$user = $comment->user; // User Model

但是目前的需求是: 刪除一個(gè)評(píng)論過的用戶數(shù)據(jù), 那自然相關(guān)的評(píng)論數(shù)據(jù)也不能顯示 否則信息就不全(這是正常的需求吧?)

那按照邏輯來(lái)說 只要inner join 查詢就可以過濾掉不符合的數(shù)據(jù).
LaravelEloquent 目前我只查到with方法

這個(gè)需求在YiiActiveRecord 是可以通過來(lái)很方便解決的

$thread = Thread::find()->innerJoinWith(['comments', 'comments.user'])->one();

Laravel并不是很熟 所以想問問這方面的大牛如何來(lái)解決. 謝謝!

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級(jí)PHP講師

全部回復(fù)(6)
習(xí)慣沉默

laravel中查詢構(gòu)建器中的join默認(rèn)就是inner join的行為,手冊(cè)是這么說的

給我你的懷抱

雷雷

巴扎黑

Eloquent ORM沒有直接的join查詢條件,但也有變通方法,如樓上所說。
不過我一般不用ORM,因?yàn)樾阅茉?。我用Query Builder。

洪濤

雷雷

巴扎黑

在關(guān)系里寫上join就好了,->hasMany()->join()->where() 想怎么寫怎么寫

世界只因有你

其實(shí)我問的主要是用法, 這種需求很常見. 主要是問下有沒有這方面的問題

這個(gè)在rails里都是有實(shí)現(xiàn)的
laravel 目前我看到的只有一個(gè)with

rails里有 preload、includes、Eager load、Joins, 可以來(lái)區(qū)別eager loading數(shù)據(jù)的方式.
這里有篇文章來(lái)講解
http://www.mamicode.com/info-...

YiiActiveRecord也有with, joinWith(inner join, left join ....) innerJoinWith, 來(lái)根據(jù)需求做eager loading

其他的我就不查了. 并不是我要損laravel, 我是到現(xiàn)在也沒有覺得laravelEloquent強(qiáng)大在哪里

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板