求解決 Laravel with () limit 的問題 附帶解決方案

全場我最姜姜姜丶發表於2018-11-19

比如如何取得每篇文章中的前10條評論
下面為錯誤寫法:

essay::with(['comment' => function($query) {
    $query->take(10)
}])

謝謝各位大佬的幫助!
但是最終效果都不理想。
https://github.com/laravel/framework/issues/18014
在上面的issues找到解決方法
貼一下自己的程式碼

//這裡我是反向關聯,正向關聯也可以的。
public function products()
{
    return $this->belongsToMany(Hproduct::class,'hproduct_has_type','type_id','product_id');
}

public function topTenproducts()
{
    return $this->products()->with('supplier')->where('is_sale','=',1)->limit(4);
}

public function getProdcutsWithtopTenproducts($col)
{
    $model = $this->whereIn('id',$col)->get();
    $model->each(function ($model) {
        $model->load('topTenproducts');
        });
    return $model->toArray();
}

相關文章