第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

Laravel 將所有父類別顯示為特定子類別的樹

Laravel 將所有父類別顯示為特定子類別的樹

PHP
桃花長相依 2022-08-05 10:56:20
我正在嘗試獲取子類別的類別樹假設(shè)我有一個名為“配件”的子類別這個子類別有電子>筆記本電腦的父母所以它是電子產(chǎn)品>筆記本電腦>配件表 :-----------------------------------------| id    | parent_id     | name          ||----   |-----------    |-------------  || 1     | 0             | Electronics   || 2     | 1             | Laptops       || 3     | 2             | Accessories   |-----------------------------------------我可以得到一個子類別的根類別,比如:function getTopParent($category) {    if($category->parent_id === null) {        return $category->name;    }    return getTopParent(App\Category::find($category->parent_id));    // Will return Electronics}我也知道如何顯示樹等類別,請參閱此處function printCategoryName($categories, $parentName = '') {    foreach ($categories as $category) {        $name = $parentName ? implode(' > ', [$parentName, $category->name]) : $category->name;        echo sprintf('%s%s', $name, PHP_EOL);        if (count($category->children) > 0) {            printCategoryName($category->children, $name);        }    }}printCategoryName($categories);我需要的是給出一個類別,如配件,并獲取此子類別的樹和獲取類別樹:電子產(chǎn)品>筆記本電腦>配件。我怎樣才能做到這一點?
查看完整描述

4 回答

?
慕妹3146593

TA貢獻1820條經(jīng)驗 獲得超9個贊

    protected function getCategoriesTree()

    {

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


        if($categories->count())

        {

            foreach ($categories as $category) 

            {

                $categories_tree[$category->id] = $this->getChildCategories($category);

            }

        }


        return response()->json(['categories' => $categories_tree]);

    }


    private function getChildCategories($category)

    {

        $sub_categories = [];


        $childs = Category::where('parent_id', $category->id)->get();


        $sub_categories = $category;


        $sub_categories['sub_categories'] = [];


        if($childs->count())

        {

            $sub_categories['sub_categories'] = $childs;

        }


        return $sub_categories;

    }


查看完整回答
反對 回復(fù) 2022-08-05
?
largeQ

TA貢獻2039條經(jīng)驗 獲得超8個贊

這就是我如何讓它工作:


function getParentsTree($category, $name)

{

    if ($category->parent_id == null)

    {

        return $name;

    }


    $parent = Category::find($category->parent_id);

    $name = $parent->name . ' > ' . $name;


    return getParentsTree($parent, $name);

}   


$cat = Category::find(1);

echo getParentsTree($cat, $cat->name);

輸出:Electronics > Laptops > Accessories


查看完整回答
反對 回復(fù) 2022-08-05
?
哈士奇WWW

TA貢獻1799條經(jīng)驗 獲得超6個贊

這是復(fù)合設(shè)計模式解決的常見問題

將對象組合成樹結(jié)構(gòu)以表示整個部分的層次結(jié)構(gòu)。復(fù)合允許客戶端統(tǒng)一處理單個對象和對象組合。遞歸組合 “目錄包含條目,每個條目都可以是一個目錄。1對多“有”上“是”層次結(jié)構(gòu)

你可以在這里看到一個使用php實現(xiàn)復(fù)合設(shè)計模式的例子。


查看完整回答
反對 回復(fù) 2022-08-05
?
慕絲7291255

TA貢獻1859條經(jīng)驗 獲得超6個贊

我正在使用這種結(jié)構(gòu)


您的輸入類別模型App\Category.php


class Categories extends Model

{

    public function parent()

    {

       return $this->hasOne('App\Category', 'parent_id','id');

    }

    public function childiren()

    {

       return $this->hasMany('App\Category', 'id','parent_id');

    }

}

您的控制器ExampleController.php


public function example()

{

    $data = Category::all();

    return view('index', compact('data'));

}

您的刀片index.blade.php


<select>

    @foreach($data as $categories)

        <optgroup label="{{ $categories->name }}">

            @foreach($categories->children as $category)

                <option value="{{ $category->id }}">{{ $category->name }}</option>

            @endforeach

        </optgroup>

    @endforeach

</select>

你也使用jquery選擇2

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

查看完整回答
反對 回復(fù) 2022-08-05
  • 4 回答
  • 0 關(guān)注
  • 188 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號