我有两个表 'category'
和 'items'
。我想从每个类别中选择五个项目。我尝试了我的代码,但它不起作用。我怎样才能在 Laravel 中做到这一点?
<?php
$items = DB::table('items')
->leftjoin('category', 'category.id', '=', 'items.categoryId')
->select('items.id', 'items.name', 'items.categoryId', 'category.categoryName')
->groupBy(items . categoryId)
->limit(5)
->get()
最佳答案
您可以尝试预先加载项目,但我不确定如何对其应用限制。您最好的选择可能是使用多个查询:
class Category extends Model{
...
public function items(){
return $this->belongsToMany(App\Item::class);
}
}
class Item extends Model{
...
}
$categories = Category::all();
$categoriesWithItems = $categories->map(function($category){
return [
'category' => $category,
'items' => $category->items()->take(5)->get(),
];
}
关于mysql - 根据类别选择项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35055998/