我试图仅在产品表中获取类别集合。我的类别表有 300 个项目。如果产品表中附加了一个类别,我只想要一个集合。 $categories 集合应该只会产生大约 10 个类别,因为只有大约 10 个产品具有不同的 category_ids
$products = DB::table('products')->groupBy('category_id')->get();
foreach($products as $product){
$categories[] = DB::table('categories')->where('id', '=', $product->category_id)->first();
}
$categories = collect($categories)->all();
也许我做错了,应该使用不同的查询构建器方法?
最终结果 $categories 确实得到了我想要的结果,但在我的 Blade 中我得到了“尝试获取非对象的属性”错误。
最佳答案
如果在 Blade 文件中使用 $categories
作为集合,则需要删除 ->all()
方法。
->all()
在创建集合后将其转换为数组:
$categories = collect($categories);
关于php - Laravel - 将数组转换回集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56295907/