【问题标题】:Laravel 5.2 nested foreach [closed]Laravel 5.2嵌套foreach [关闭]
【发布时间】:2016-07-12 18:07:37
【问题描述】:

我有 2 个模型:类别和项目。我不知道如何用嵌套数组制作 foreach 循环。

类别模型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Category extends Model
{

    public static function getAll() {

        $categories= Category::orderBy('id', 'ASC')->get();

        return $categories;

    }

    public function items() {

        return $this->hasMany('App\Item', 'category_id');

    }

物品型号:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Item extends Model
{

    public static function getAll() {

        $items = Item::orderBy('id', 'DESC')->get();

        return $items;

    }

    public function category() {

        return $this->belongsTo('App\Category');

    }

}

在我的控制器中,我正在这样做:

foreach($categories as $category ) {

    $data['categories'][] = [
        'id' => $category ->id,
        'name' => $category ->name,
        'items_count' => ?
    ];

}

我需要这样的东西。

{
  "categories": [
    {
      "id": 1,
      "name": "cat_name_1",
      "items_count": 6,
         "items": [
           {
             "id": "1",
             "name": "item_name",
             "category_id": "1",
           }
          ],
    },
    {
      "id": 2,
      "name": "cat_name_1",
      "items_count": 7,
         "items": [
           {
             "id": "2",
             "name": "item_name",
             "category_id": "2",
           }
          ],
    },
    {
      "id": 3,
      "name": "cat_name_1",
      "items_count": 4,
         "items": [
           {
             "id": "3",
             "name": "item_name",
             "category_id": "3",
           }
          ],
    },
   ]
}

帮助我改进我的代码。

【问题讨论】:

    标签: php arrays foreach laravel-5 laravel-5.2


    【解决方案1】:

    试试这个:

    $categories = Category::orderBy('id', 'ASC')->with('items')->get();
    

    只需 var_dump $categories(不需要 foreach 循环)来查看它是否是您想要的结果

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-11
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2017-05-09
      • 1970-01-01
      • 2020-03-17
      • 2018-03-07
      相关资源
      最近更新 更多