2014-11-09 5 views
0

Я хочу повторить меню из базы данных ..меню из базы данных в Yii

Вот мой код ..

<?php 
use yii\widgets\Menu; 
use app\models\Names; 

$names_model = new Names(); 
$product_names = $names_model->findNames(); 

foreach ($product_names as $product_name => $val) { 
    $name = $val['name']; 
} 
echo Menu::widget([ 
    'items' => [ 
    // Important: you need to specify url as 'controller/action', 
    // not just as 'controller' even if default action is used. 
     ['label' => $name, 'url' => ['site/index']], 
    ], 
    ]); 
?> 

Теперь я хочу, чтобы как-то использовать этот цикл Еогеаспа внутри меню виджета .. Или есть ли другое решение моей проблемы? Эта функция findNames верна внутри моей модели имен.

+0

ли URL то же самое для всех имен? – Barry

+0

@Barry Нет, URL-адрес другой, но я просто использую значение столбца из db, как этот $ val ['url'] –

ответ

0

Вы также можете создать массив пунктов за пределами виджета меню, как этот

$items = []; 
foreach ($product_names as $product_name => $val) { 
    $items[] = ['name' => $val['name'], 'url' => $val['url']]; 
} 

echo Menu::widget([ 
    'items' => $items, 
]); 
+0

Я пробовал так, как вы сказали, и это дает мне эту ошибку: синтаксическая ошибка, неожиданная '; ', expecting'] ' –

+0

@ MarkoMikulić Извините, пропустил закрытие скобки, см. modifid ответ. – Barry

+0

спасибо, это сработало! :) –

Смежные вопросы