在我的情况下,我有两个具有 1 对多关系的表(集合、产品)。使用代码示例,它是:$collectionProducts = collections::join('products', 'products.collection_id', '=', 'collections.collection_id')->get();我目前的结果是:[ Collection 1 Product 1 => [ ...Product Info ], Collection 1 Product 2 => [ ...Product Info ], Collection 2 Product 1 => [ ...Product Info ], Collection 2 Product 3 => [ ...Product Info ],]我想让结果如下:[ Collection 1 => [ Product 1 => [ ...Product Info ], Product 2 => [ ...Product Info ], ], Collection 2 => [ Product 1 => [ ...Product Info ], Product 3 => [ ...Product Info ], ]]我怎样才能达到我的预期结果?我知道这是常见的用法,如果之前有任何重复的问题,我很抱歉,因为我找不到任何匹配的问题。
1 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
这是 Laravel 及其 Eloquent 关系非常擅长让我们轻松而无需繁琐的连接的东西。
在您的Collection模型上创建与产品的关系:
public function products()
{
return $this->hasMany("App\Product");
}
然后在绘制您的集合时,您可以将产品包含在预先加载中,以便对数据库进行一次简单的调用:
$collections = Collection::with('products')->get();
你有你要求的集合。您可以从$collection循环中提取所有产品或从这里提取任何您喜欢的产品。
刀片视图中的示例:
@foreach($collections as $collection)
@foreach($collection->products as $product)
{{ $product->name }} //etc
- 1 回答
- 0 关注
- 218 浏览
添加回答
举报
0/150
提交
取消