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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

PHP
慕姐4208626 2022-07-22 15:12:26
我正在嘗試獲取子類別的類別樹假設(shè)我有一個(gè)名為“配件”的子類別這個(gè)子類別有電子 > 筆記本電腦的父母所以它是電子產(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}我也知道如何顯示樹等類別,請(qǐng)參見此處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);我需要的是給一個(gè)像附件這樣的類別并獲取樹并獲取該子類別的類別樹:電子產(chǎn)品 > 筆記本電腦 > 配件。我怎樣才能做到這一點(diǎn)?
查看完整描述

4 回答

?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超8個(gè)贊

    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;

    }


查看完整回答
反對(duì) 回復(fù) 2022-07-22
?
慕桂英546537

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊

這就是我讓它工作的方式:


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


查看完整回答
反對(duì) 回復(fù) 2022-07-22
?
大話西游666

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊

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

將對(duì)象組合成樹結(jié)構(gòu)以表示整個(gè)部分的層次結(jié)構(gòu)。Composite 讓客戶可以統(tǒng)一處理單個(gè)對(duì)象和對(duì)象的組合。遞歸組合“目錄包含條目,每個(gè)條目都可以是一個(gè)目錄?!?nbsp;一對(duì)多“有一個(gè)”在“是一個(gè)”層次結(jié)構(gòu)中

資源

您可以在此處查看使用 php 實(shí)現(xiàn)復(fù)合設(shè)計(jì)模式的示例



查看完整回答
反對(duì) 回復(fù) 2022-07-22
?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

我正在使用這種結(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 select 2

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

查看完整回答
反對(duì) 回復(fù) 2022-07-22
  • 4 回答
  • 0 關(guān)注
  • 159 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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