2012-07-21 29 views
2

我只是想knpLabs MenuBundleknpMenuBundle問題

我沒有收到該標誌爲當前的項目,我跟隨器turorial從https://github.com/KnpLabs/KnpMenuBundle/blob/master/Resources/doc/index.md

Here is my code 

use Knp\Menu\FactoryInterface; 
use Symfony\Component\DependencyInjection\ContainerAware; 

class Builder extends ContainerAware 
{ 
    public function mainMenu(FactoryInterface $factory, array $options) 
    { 
    $menu = $factory->createItem('root'); 

    $menu->addChild('Innehåll', array('route' => 'Content')); 

    $menu->addChild('Skärmlayouter', array('route' => 'Layout')); 

    $menu->addChild('Media', array('route' => 'Media')); 

    $menu->addChild('Områden & fastigheter', array('route' => 'Container')); 

    $menu->addChild('Användare & behörigheter', array('route' => 'UserManagement')); 

    return $menu; 
    } 
} 

而且這裏是它產生:

<ul> 
<li class="first"> 
<a href="/biztv_symfony/web/app_dev.php/Content/">Innehåll</a>   
</li> 

<li> 
<a href="/biztv_symfony/web/app_dev.php/Layout/">Skärmlayouter</a>   
</li> 

<li> 
<a href="/biztv_symfony/web/app_dev.php/Media/">Media</a>   
</li> 

<li> 
<a href="/biztv_symfony/web/app_dev.php/Container/">Områden &amp; fastigheter</a>   
</li> 

<li class="last"> 
<a href="/biztv_symfony/web/app_dev.php/UserManagement/">Användare &amp; behörigheter</a>   
</li> 

</ul> 

它聲稱自動包含活動鏈接標誌(按類「當前」),這就是爲什麼我想試試這個包,所以我不必介入編碼該部分。

要麼我缺少一個關鍵點,或者我關注的這個文檔缺少一個關鍵部分?

回答

5

您應該使用setCurrentUri方法。如:

$menu = $factory->createItem('root'); 
$menu->setCurrentUri($this->container->get('request')->getRequestUri()); 
+1

沒有任何反應,當我加入這一行=( 我可以vardump該變量和獲取顯示在ADDRES字段中的路徑,但我沒有得到任何類的有源元件,我仍然只能得到我的菜單上的第一個和最後一個類項目=/ – 2012-07-31 11:48:23

+0

哦,我看到...我的問題是,我添加我的子對象後設置當前...這種方式不起作用,出於某種原因。 這樣做,就像你上面提出的建議,做setCurrentUri後創建$菜單它的作品,然後可以做 $ menu-> addChild 謝謝! – 2012-07-31 14:32:24