小部件菜单中的 yii2 动态子菜单
yii2 dynamic submenu from widget Menu
我需要理解的是,如果我声明了我想要的值,为什么我总是得到索引为 0 的生成数组
我想要这个输出
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
但现在:
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
// this is the problem --- why 0??
[0] => Array
(
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
)
我正在尝试实现的功能
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu['items'] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
}
return $items;
}
希望你能理解我的解释。
因为这个:
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
你应该做的是
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], 'items' => $subMenu];
}
return $items;
}
foreach(Menu::getArrayMenu() as $item){
$menuItems[] = $item;
}
public static function getArrayMenu(){
$array[] = ['label' => 'Онас', 'url' => ['/site/about']];
$array[] = ['label' => 'Контакты', 'url' => ['/site/contacts']];
return $array;
}
我需要理解的是,如果我声明了我想要的值,为什么我总是得到索引为 0 的生成数组 我想要这个输出
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
但现在:
Array
(
[0] => Array
(
[label] => Prima categoria,
[url] => Array
(
[0] => categorie/prima-categoria
)
)
[1] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
// this is the problem --- why 0??
[0] => Array
(
[items] => Array
(
[label] => Seconda
[url] => Array
(
[0] => categorie/seconda
)
)
)
)
)
我正在尝试实现的功能
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu['items'] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
}
return $items;
}
希望你能理解我的解释。
因为这个:
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], $subMenu];
你应该做的是
function getItems() {
$items = [];
foreach (getLabelName() as $key) {
$url = str_replace(' ', '-', $key->name);
$subMenu = [];
if (isset($key->id_sub_cat)) {
$subMenu[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . '']];
}
$items[] = ['label' => ucfirst($key->name), 'url' => ['category/' . $url . ''], 'items' => $subMenu];
}
return $items;
}
foreach(Menu::getArrayMenu() as $item){
$menuItems[] = $item;
}
public static function getArrayMenu(){
$array[] = ['label' => 'Онас', 'url' => ['/site/about']];
$array[] = ['label' => 'Контакты', 'url' => ['/site/contacts']];
return $array;
}