Вообщем народ у меня такая проблема с хлебными крошками на данный момент в товаре хлебные крошки, выглядят примерно так:
$this->params['breadcrumbs'][] = [
'template' => "<li><b>{link}</b></li>\n", // шаблон для этой ссылки
'label' => 'Каталог', // название ссылки
'url' => ['/catalog/index'] // сама ссылка
];
$this->params['breadcrumbs'][] = ['label' => $currentCatName, 'url' => ['catalog/category', 'id' => $currentProd->category_id]];
$this->params['breadcrumbs'][] = ['label' => $currentProd->title];
Т.е. грубо говоря у меня есть главная, категория и сам товар, но это не подходит, поскольку у меня может быть бесконечная вложенность я создал рекурсию и ей тяну все категории начиная с той в которой находится товар и заканчивая основной вот код:
$categories = self::getBreadcrumbsCategory($currentProd->category_id);
public function getBreadcrumbsCategory($category_id = 0) {
$category = [];
$item = Category::find()->where(['id' => $category_id])->asArray()->one();
$category['id'] = $item['id'];
$category['title'] = $item['title'];
if ($item['parent_id'] != 0) {
$category['children'] = self::getBreadcrumbsCategory($item['parent_id']);
}
return $category;
}
Проблема в том, что как мне теперь сделать всё наоборот, у меня получается категория должна быть первой стоит на определённой глубине вложенности, и заранее я не знаю на какой. Вот так:
Array
(
[id] => 17449
[title] => Ленточнопильные станки и полотна
[children] => Array
(
[id] => 15094
[title] => Станки
[children] => Array
(
[id] => 2
[title] => Станки
)
)
)
Может кто-знает как это всё дело развернуть ??
Всё я нашел как решить проблему, надо было всего, формировать массив по другому , а потом развернуть его, вообщем вот код:
function getBreadcrumbsCategory($category_id = 0) {
$category = [];
$item = Category::find()->where(['id' => $category_id])->asArray()->one();
$category[] = $item['title'] . '_' . $item['id'];
if ($item['parent_id'] != 0) {
$other_cat = self::getBreadcrumbsCategory($item['parent_id']);
$category = array_merge($category, $other_cat);
}
return $category;
}
$categories_back = array_reverse(self::getBreadcrumbsCategory($currentProd->category_id));
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Введите с клавиатуры целое число XВыведите на экран номер элемента массива, который равен X
На активности есть кнопки Оранжевого цвета, мне нужно все кнопки оранжевого цвета заменить на белыйПотому-что у меня есть другие кнопки,...