Извеждане на резултати проблем с под-под-категория

Ticketa

Registered
Имам проблем с извеждането на резултатите от базата данните. Използвам YII Framework
Имам опция за избор на Главна категория, Под категория и под категория


1. Главна категория (id: 1)
1.1 Под категория (id: 2)
1.1.1 под категория (id: 3)


В базата данни използвам съхранявам само последния номер на подкатегорията - 1.1.1 (id: 1)

Когато отворя страницата с избор на 1.1 Под категория (id: 2) виждам резултатите и от 1.1.1 , обаче ако отваря главната катеогиря (майката) 1. не виждам резултатите от 1.1.1 и 1.1 категориите.

Код:
    protected function findCategoryBySlug($slug)
    {
        if (($category = Category::findOne(['slug' => $slug, 'status' => Category::STATUS_ACTIVE])) !== null) {
            return $category;
        }
        throw new NotFoundHttpException(t('app', 'The requested page does not exist.'));
    }


Код:
        $category = $this->findCategoryBySlug($slug);
        $searchCategories = Category::find()->where(['status' => Category::STATUS_ACTIVE])->orderBy(['sort_order' => SORT_ASC])->all();
        $categories = Category::getHierarchyOfCategoriesBySlug($slug, true);
        $childCategories = Category::find()->where(['parent_id' => $category->category_id, 'status' => Category::STATUS_ACTIVE])->orderBy(['sort_order' => SORT_ASC])->all();
        $categoryPlaceholderText = t('app', 'Choose Category');

        if ($slug = request()->get('slug')) {
            $chosenCategory = self::findCategoryBySlug($slug);
            $categoryPlaceholderText = Icon::make($chosenCategory->icon) . ' ' . html_encode($chosenCategory->name);
        }

        $customFields = '';
        if (count($categories) == 1) {
            $categoryId = $category->category_id;
            $categoryFields = CategoryField::find()->where(['category_id' => $categoryId])->orderBy(['sort_order' => SORT_ASC])->all();
            // retrieve custom fields
            $typeData = [];
            foreach ($categoryFields as $field) {
                $typeData[] = [
                    'type'  => $field->type,
                    'field' => $field,
                ];
            }
            foreach ($typeData as $data) {
                $type = $data['type'];
                $field = $data['field'];
                if (!is_file(\Yii::getAlias('@' . str_replace('\\', '/', $type->class_name) . '.php'))) {
                    continue;
                }
                $className = $type->class_name;
                $component = new $className();
                if (!($component instanceof Type)) {
                    continue;
                }
                $component->field = $field;
                $component->params = [
                    'categoryId' => $categoryId,
                ];
                $component->handleFrontendSearchFormDisplay();
            }
            $customFields = $this->renderPartial('_custom-search');
        }


При debug:
Код:
        if ($slug = request()->get('slug')) {
            $chosenCategory = self::findCategoryBySlug($slug);
            print_r($chosenCategory);
            $categoryPlaceholderText = Icon::make($chosenCategory->icon) . ' ' . html_encode($chosenCategory->name);
        }

1. Главна категория (НЕ - НЕпоказва необходимите резултати)
[category_id] => 1
[parent_id] =>

1.1. Под категория (ОК - показва необходимите резултати)

[category_id] => 2
[parent_id] => 1

1.1.1. Под категория (ОК - показва необходимите резултати)

[category_id] => 3
[parent_id] => 2
 

Горе