亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

菜單多類別數組組合 Laravel 的 API 響應

菜單多類別數組組合 Laravel 的 API 響應

PHP
慕無忌1623718 2023-07-15 15:38:40
我正在嘗試為我的 React js 和 Laravel 創建一個 API 作為后端。因此,對于菜單,我有類別、子類別和進一步的子類別。我需要將所有結果合并如下,{  "response": 200,  "data": [    {      "id": 15,      "name": "dfdfhdf rtuydf",      "slug": "dfdfhdf-rtuydf",      "subcategory": [        {            "sub_id": 15,            "sub_name": "dfdfhdf rtuydf",            "sub_slug": "dfdfhdf-rtuydf"            "fsubcategory": [              {                "fsub_id": 15,                "fsub_name": "dfdfhdf rtuydf",                "fsub_slug": "dfdfhdf-rtuydf"              },              ...            ]        },        ...      ]    },    ....  ]}我嘗試使用下面的代碼,但結果未按預期顯示。$list = Category::select('id', 'name', 'slug')->where(array('in_menu' => 1, 'status' => 1, 'deleted_at' => null))->orderBy('id', 'desc')->get();$array = [];foreach ($list as $category) {        $sublist = Subcategory::select('id', 'name', 'slug')->where(array('category_id' => $category->id, 'status' => 1, 'deleted_at' => null))->orderBy('id', 'desc')->get();        $first = array("id" => $category->id, "name" => $category->name, "slug" => $category->slug);        array_push($array, array("category" => $first));        foreach($sublist as $subcategory) {            array_push($array, array("subcategory" => array("sub_id" => $subcategory->id, "sub_name" => $subcategory->name, "sub_slug" => $subcategory->slug)));        }}return response()->json(['response' => 200, 'data' => $array]);上述代碼的結果是,{"response": 200,"data": [    {    "category": {        "id": 15,        "name": "dfdfhdf rtuydf",        "slug": "dfdfhdf-rtuydf"    }    },    {    "subcategory": {        "sub_id": 6,        "sub_name": "Test Subcategory 221",        "sub_slug": "test-subcategory-221"    }    },]}如何達到需要的結果。我真的被困在這里了。
查看完整描述

1 回答

?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

這應該可以做到:


$list = Category::select('id', 'name', 'slug')

                ->where([

                    'in_menu' => 1,

                    'status' => 1,

                    'deleted_at' => null

                ])

                ->orderBy('id', 'desc')

                ->get();


$data = [];


foreach ($list as $category) {

    $sublist = Subcategory::select('id', 'name', 'slug')

                           ->where([

                               'category_id' => $category->id,

                               'status' => 1,

                               'deleted_at' => null

                           ])

                           ->orderBy('id', 'desc')

                           ->get();


    $item = [

        "id" => $category->id,

        "name" => $category->name,

        "slug" => $category->slug,

        "subcategory" => [],

    ];


    foreach($sublist as $subcategory) {

            $fsublist = Fsubcategory::select('id', 'name', 'slug')->where(array('subcategory_id' => $subcategory->id, 'status' => 1, 'deleted_at' => null))->orderBy('id', 'desc')->get();

            

            $subitems = [];

            foreach($fsublist as $fsubcategory) {

                $subitems[] = [

                    "fsub_id" => $fsubcategory->id,

                    "fsub_name" => $fsubcategory->name,

                    "fsub_slug" => $fsubcategory->slug,

                ];

            }


            $item["subcategory"][] = [

                "sub_id" => $subcategory->id,

                "sub_name" => $subcategory->name,

                "sub_slug" => $subcategory->slug,

                "fsubcategory" => $subitems,

            ];

        }


    $data[] = $item;

}


return response()->json(['response' => 200, 'data' => $data]);


查看完整回答
反對 回復 2023-07-15
  • 1 回答
  • 0 關注
  • 154 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號