我正在使用Symfony 2.3.x上的KNPMenuBundle创建一个捆绑包并且它没有标记当前元素,因此,我认为问题与使用'uri'而不是'route'有关,因为我在Symfony等等,当我使用route时,元素会从
更改 <li><a href="engineerings">Engineerings</a></li>
为:
<li><span>Engineerings</span></li>
<a>
元素
public function mainMenu(FactoryInterface $factory, array $options) {
$factory = new MenuFactory();
$menu = $factory->createItem('root');
$menu->setChildrenAttributes(array('id' => 'tabs', 'class' => 'fl'));
$menu->addChild('Cooperators', array('uri' => 'companies'));
$menu->addChild('Customers', array('uri' => 'clients'));
$menu->addChild('Engineerings', array('uri' => 'engineerings'));
$menu->addChild('Lines', array('uri' => 'lines'));
$menu->addChild('Priorities', array('uri' => 'priorities'));
$menu->addChild('Projects', array('uri' => 'projects'));
$menu->addChild('Statuses', array('uri' => 'statuses'));
$menu->addChild('Sites', array('uri' => 'sites'));
$menu->addChild('Reports', array('uri' => 'reports'));
$menu->addChild('Roles', array('uri' => 'roles'));
$menu->addChild('Users', array('uri' => 'users'));
return $menu;
}
<span>
元素
public function mainMenu(FactoryInterface $factory, array $options) {
$factory = new MenuFactory();
$menu = $factory->createItem('root');
$menu->setChildrenAttributes(array('id' => 'tabs', 'class' => 'fl'));
$menu->addChild('Cooperators', array('route' => 'companies'));
$menu->addChild('Customers', array('route' => 'clients'));
$menu->addChild('Engineerings', array('route' => 'engineerings'));
$menu->addChild('Lines', array('route' => 'lines'));
$menu->addChild('Priorities', array('route' => 'priorities'));
$menu->addChild('Projects', array('route' => 'projects'));
$menu->addChild('Statuses', array('route' => 'statuses'));
$menu->addChild('Sites', array('route' => 'sites'));
$menu->addChild('Reports', array('route' => 'reports'));
$menu->addChild('Roles', array('route' => 'roles'));
$menu->addChild('Users', array('route' => 'users'));
return $menu;
}
现在,为什么会这样?另外,我该如何设置当前项目?我不能让它显示'当前'类。
答案 0 :(得分:2)
你的问题就在这一行:
$factory = new MenuFactory();
你不需要它。只需删除它。这将使用默认设置创建新的MenuFactory
。当我像这样创建自己的factory
时,我自己会遇到一些有线行为。