Yii2 Все товары в подкатегориях

155
15 октября 2018, 21:50

Вообщем такая проблема, есть проект на yii2 там есть категории с бесконечной вложенностью и такая задача вывести все товары из данной под категории и всех вложенных в неё. Вот как я получаю категорию в которую перехожу:

$glav_category = Category::find()->where(['translit' => $translit])->one();

Вот так ищу вложенные в неё категории:

$categorys = Category::find()->where(['parent_id' => $glav_category->id])->all();

И тут надо запустить какой-то цикл который проверит данные на категории на вложенность и так далее, но я хз как это сделать.По сути мне надо просто получить id всех вложенных категорий после этого получить все товары будет не сложно.

Answer 1

Получить дерево категорий можно с помощью рекурсии

function listCategoriesAsTree($indent = '')
{
    $items = [];
    $categories = Category::find()->all();
        foreach ($categories as $category) {
            $items[$category->id] = $indent . $category->name;
            $items +=
                self::listCategoriesAsTree($indent . html_entity_decode(' '), $category->id);
        }
        return $items;
    }
Answer 2

Оно в принципе подходит только я его немного изменил:

function listCategoriesAsTree($uid = 0) {
$items = [];
$categories = Category::find()->where(['parent_id' => $uid])->all();
    foreach ($categories as $category) {
        $items[] = $category->id
        self::listCategoriesAsTree($category->id);
    }
    return $items;
}

Вот так.

READ ALSO
Как спарсить данные с сайта, если стоит blazingfast.io

Как спарсить данные с сайта, если стоит blazingfast.io

Не удается спарсить данные с https://anistarme/

170
Не полный перенос строки в потоке ввода

Не полный перенос строки в потоке ввода

Нужно отформатировать номер телефона в формате +XXX-YYY-ZZZZZZ и распределить по аргументам номера страны, региона и области, при этом номера между...

205
проблема с файлом glut.h

проблема с файлом glut.h

Здраствуйте, при написании кода на OpenGL, у меня возникла проблема с файлом gluth

165
SSPI идентификация

SSPI идентификация

Делаю идентификацию и аутентификацию пользователя через SSPI

181