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

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

如何在 JSON Laravel 中獲取子類別和子類別用戶類別下的孩子

如何在 JSON Laravel 中獲取子類別和子類別用戶類別下的孩子

PHP
拉莫斯之舞 2022-07-16 10:11:41
這是一個非常常見的問題,但我無法以 JSON 格式為 API 制作它。我是一個表類別,其中存儲了三層類別。類別->子類別->子項。我想在 API 格式中得到這個。就像是。Category  sub-category-1  sub-category-2       child-2-1      child-2-2  sub-category-3我嘗試使用代碼  $allData = array();            // get all parent category             $categories = Category::where(['status' => 1, 'parent_id' => 0])->get();                    foreach ($categories as $key=>$sub) {                    // now take one by one it's child category                     $allData[$key]['parent'] = $sub->name;                    $subCategory = Category::where('status', 1)->where('parent_id', '=', $sub->id)->get();                    $subCat = array();                    // set parent category title                    foreach ($subCategory as $k=>$subcat) {                        $subCat[$subcat->id] = $subcat->name;                    }                    // set subcategory array                    $allData[$key]['subcategory'] = $subCat;            }           return $allData;我得到了這個結果不是我不知道如何獲得孩子的價值數據庫看起來像
查看完整描述

2 回答

?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

最后,我解決了這個


       $parents = Category::where('parent_id', 0)->where('status', 1)->orderBy('sort_order', 'asc')->get();

        foreach ($parents as $parent) {

            $childs = Category::where('parent_id', $parent->id)->where('status', 1)->orderBy('sort_order', 'asc')->get();

            if (count($childs) > 0) {

                $subCat = array();

                $players = array();

                $roster[$parent->name] = $players;

                        foreach ($childs as $i => $child) {

                            $subchilds = Category::where('parent_id', $child->id)->where('status', 1)->orderBy('sort_order', 'asc')->get();

                            if (count($subchilds) > 0) {


                                $roster[$parent->name][$child->name] = $subCat;

                                foreach ($subchilds as $subchild) {


                                    $roster[$parent->name][$child->name][$subchild->id] = $subchild->name;

                                }


                            }else{

                                $roster[$parent->name][$child->name] = $players;

                            }

                        }


            }

        }

        return $roster;

http://img1.sycdn.imooc.com//62d21e920001fafb04720444.jpg

查看完整回答
反對 回復 2022-07-16
?
喵喵時光機

TA貢獻1846條經驗 獲得超7個贊

這是你如何做到的。


 $allData = array();

        // get all parent category 

        $categories = Category::where(['status' => 1, 'parent_id' => 0])->get();        

        foreach ($categories as $key=>$sub) {

                // now take one by one it's child category 

                $allData[$key]['parent'] = $sub->name;

                $subCategory = Category::where('status', 1)->where('parent_id', '=', $sub->id)->get();

                $subCat = array();

                // set parent category title

                foreach ($subCategory as $k=>$subcat) {

                    $subCat[$subcat->id] = $subcat->name;

                    //children of subcat 

                    $children = Category::where('status', 1)->where('parent_id', '=', $subcat->id)->get();  

                    $child = array();

                    if($children){

                        foreach($children as $k1=>$val){

                             $child[$val->id] = $val->name;

                             $allData[$key]['subcategory'][$subcat->id]['child'] = $child;

                        }

                    }


                }

                // set subcategory array

                $allData[$key]['subcategory'] = $subCat;

        }

       return $allData;

請嘗試這種方式。將您的 json 轉換為數組并使用它來獲取子值


$ar = json_decode($data,true);

foreach($ar as $value){

    echo $value['parent'].'<br>';

    foreach($value['child'] as $child){


       echo '&nbsp;'.$child.'<br>';

   }

 }

這將輸出這個


test

 A

 B

 C

 D

 E

test1

 G

 H

 I

 J

 K


查看完整回答
反對 回復 2022-07-16
  • 2 回答
  • 0 關注
  • 111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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