1. PHP / Говнокод #23337

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    public static function GenerateMenu()
        {
            $item = [];
            $section = self::find()->all();
            $count_section = 0;
    
            foreach ($section as $model_section) {
                $item[] = ['label' => $model_section->name, 'url' => '#'];
                $category = \common\models\Category::find()->where(['id_section' => $model_section->id])->all();
                $count_category = 0;
                foreach ($category as $model_category) {
                    $item[$count_section]['items'][$count_category] = ['label' => $model_category->name, 'url' => '#'];
                    $subcategory = \common\models\Subcategory::find()->where(['id_category' => $model_category->id])->all();
                    $count_subcategory = 0;
                    foreach ($subcategory as $model2) {
                        $item[$count_section]['items'][$count_category]['items'][$count_subcategory] = ['label' => $model2->name, 'url' => '#'];
                        $count_subcategory++;
                    }
                    $count_category++;
                }
                $count_section++;
            }
    
            return $item;
        }

    Феерическое решение для вывода tree из трех категорий.

    Запостил: qstd, 09 Сентября 2017

    Комментарии (4) RSS

    • Шаблон проектирования "форфорыч".
      Ответить
    • Форфорическое решение
      Ответить
    • Да ну это еще какой-то слабак делал. Мне как то в работу пришел сайт с жалобой "Очень тормозит при добавлении категории"... (А там при добавлении категории добавлялось порядка 150 подкатегорий на разных уровнях). И среди прочего для этого (собственно почти и для того же) использовался похожий код, с одной поправкой. Этот код дублировался три раза. Просто по количеству самых нижних уровней. (Уже подробностей не вспомню - мозг такого треша не переносит)....

      И было это творение от студии позиционирующей себя на рынке очень высоко...
      Ответить
      • > студии
        Ну так для питушиной студии это на самом деле довольно неплохо.
        Ответить

    Добавить комментарий