在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/PHP  數(shù)據(jù)庫/ Larave with()函數(shù)中正確的limit和take

Larave with()函數(shù)中正確的limit和take

//文章
class essay extends Model
{
    public function comment()
    {
        return $this->hasMany('App\comment')
    }
}

//評論
class comment extends Model
{
    public function essay()
    {
        return $this->belongsTo('App\essay')
    }
}

如何取得每篇文章中的前10條評論

//這樣寫是錯的!??! 只能取所有文章的所有評論的前10條
essay::with(['comment' => function($query) {
    $query->take(10)
}])

求各位大佬幫幫忙

回答
編輯回答
涼心人

with 意味渴求式加載。意思是當你需要一些信息的時候把其連帶的信息也“渴求式的查詢出來”。所以你要如何取得每篇文章中的前10條評論那么就要先把所有的文章找出來然后再去加載每一個文章的評論。

essay::get()->comment()->take(10);
2017年3月9日 11:24
編輯回答
薄荷綠

來自:https://segmentfault.com/a/11... 有兩種方法,自己親測過可行,但要注意以下。

//第一種方法,為作者編寫的第三種方法。

$sub = Comment::whereIn('post_id',$postIds)->select(DB::raw('*,@post := NULL ,@rank := 0'))->orderBy('id');

改為

$sub = Comment::whereIn('post_id',$postIds)->select(DB::raw('*,@post := NULL ,@rank := 0'))->orderBy('post_id');

//第二種方法則為網(wǎng)址評論下的第一個網(wǎng)友(夜影)

2017年9月28日 14:12