为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Laravel Eloquent 连接表后如何将我的结果分组为嵌套数组

使用 Laravel Eloquent 连接表后如何将我的结果分组为嵌套数组

PHP
小唯快跑啊 2021-12-03 19:14:46
在我的情况下,我有两个具有 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


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信