2014-01-31 13 views
0

我在Symfony 2.3.x上創建了一個KNPMenuBundle包,它不標記當前元素,所以我認爲這個問題與使用'uri'而不是'route'有關,因爲我在Symfony上和所有的事情是,當我使用的路線,從KnpMenuBundle:爲什麼使用'路線'而不是'uri'將<a>元素轉換爲<span>?

<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; 
    } 

現在,爲什麼會發生這種情況?另外,我如何設置當前項目?我不能讓它顯示'當前'類。

回答

2

你的問題是這樣的一行:

$factory = new MenuFactory(); 

你不需要它。只要刪除它。這將使用默認設置創建一個新的MenuFactory。我自己創建自己的factory時會遇到一些有線行爲。

+0

大多數使用symfony的人都使用過「路由」,它似乎適用於他們。 KnpMenuBundle不是很聰明,因爲它不是單獨選擇當前項目。謝謝你的回答。此外,根據它顯示在這裏:https://github.com/KnpLabs/KnpMenuBundle/blob/1b07578738d3425c09cfbd153276382388994f46/Resources/doc/i18n.md它確實接受「路線」選項 – Splendonia

+0

對不起。你當然是對的。有一個'route'選項。我會重寫我的答案。 – ferdynator

+0

好了重寫了我的答案。問題在別的地方。 – ferdynator

相關問題