Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
227 views
in Technique[技术] by (71.8m points)

php - how to refactor and make scalable

i used from this structure for save categories in database

+---------+-----------+-----------+
|      id |   name    | parent_id |
+---------+-----------+-----------+
|       1 | Supports  |        0  |    
|       2 | Mobile    |        0  |      
|       3 | Outdoor   |        1  |       
|       4 | Samsung   |        2  |   
|       5 | Cricket   |        3  |  
|       6 | Team A    |        5  |      
+---------+-----------+-----------+

i used this code for create breadcrumbs for category.
this code show last three category

how to refacter this code and show all related category.

please show this

<?php
if ($category->parent_id == 0)
{
    echo <<<EOL
    <ul class="js-selected-category c-content-categories__selected-list" id="breadcrumbs">
    <li class="c-content-categories__selected-category">
        {$category->name}
    </li>
    </ul>
    EOL;
}
else if($category->parent != null)
{
    if (isset($category->parent->parent->name))
    {
        echo <<<EOL
        <ul class="js-selected-category c-content-categories__selected-list" id="breadcrumbs">
        <li class="c-content-categories__selected-category">
            {$category->parent->parent->name}
        </li>
        <li class="c-content-categories__selected-category">
            {$category->parent->name}
        </li>
        <li class="c-content-categories__selected-category">
            {$category->name}
        </li>
        </ul>
        EOL;
    }
    else
    {
        echo <<<EOL
        <ul class="js-selected-category c-content-categories__selected-list" id="breadcrumbs">
        <li class="c-content-categories__selected-category">
            {$category->parent->name}
        </li>
        <li class="c-content-categories__selected-category">
            {$category->name}
        </li>
        </ul>
        EOL;
    }

}

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Resolved:

<ul class="js-selected-category c-content-categories__selected-list" id="breadcrumbs">

@while ($category->parent != null)
    <?php $lists[] = $category->parent; ?>
    <?php $category = $category->parent; ?>
@endwhile

<?php $lists = array_reverse($lists,true); ?>

@foreach ($lists as $cate)
    <li class="c-content-categories__selected-category">
        {{ $cate->name }}
    </li>
@endforeach

</ul>

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...