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

在我的情况下,我有两个具有 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

    ],

  ]

]

我怎样才能达到我的预期结果?我知道这是常见的用法,如果之前有任何重复的问题,我很抱歉,因为我找不到任何匹配的问题。


小唯快跑啊
浏览 219回答 1
1回答

慕标5832272

这是 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
打开App,查看更多内容
随时随地看视频慕课网APP