我有这个查询
$categories = Category::with('products')
->OfListed() // this is my scope has nothing to do with my issues.
->orderby('id', 'desc')
->take(10)
->get();
它的工作方式中途!意思是:
我用他们的产品获取我的类别,但我没有按顺序获取它们 id ,也 我得到了所有内容而不是最后10个。
我如何在刀片中展示它们:
@foreach($categories as $kis)
@foreach($kis->products as $ki)
{{$ki->title}}
@endforeach
@endforeach
任何想法?
答案 0 :(得分:3)
如果您想要10个产品并订购
,请尝试此操作$categories = Category::with([
'products' => function($query){
$query->orderby('id', 'desc');
}
])->OfListed()->get();
在刀片中
@foreach($categories as $kis)
@foreach($kis->products->take(10) as $ki)
{{$ki->title}}
@endforeach
@endforeach
编辑答案为O.P.说它有效 请在文档https://laravel.com/docs/5.6/eloquent-relationships#constraining-eager-loads
中查看答案 1 :(得分:0)
如果您尝试
@foreach($categories as $i => $kis)
<div>Category {{{ $i }}}</div>
@foreach($kis->products as $ki)
{{$ki->title}}
@endforeach
@endforeach
您将看到您只获得10个类别。由于您的循环仅显示产品的标题,因此您无法查看获得的类别数量。看看你检索产品的方法 - 它可能选择的不仅仅是预期的。