2012-07-23 9 views
8

Ich habe eine Frage zum Rendering des KnpMenu Bundle für Symfony2. Von Ich habe gelesen, es sollte eine "aktuelle" Klasse an der übereinstimmenden Route Element sein. Ich habe die Knp-Dokumentation gelesen und sie sagen etwas über RouteVoter, aber ich kann es nicht zum Laufen bringen. Irgendwelche Ideen?Knp Menu Bundle Aktueller Artikel Symfony 2

Builder Code:

<?php 
// src/Acme/DemoBundle/Menu/Builder.php 
namespace Acme\DemoBundle\Menu; 

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('Home', array('route' => 'index')); 
     $menu->addChild('About Me', array('route' => 'products')); 

     return $menu; 
    } 
} 

Antwort

4

Es ist 10 Monate auf und ich folgte die Lösung oben dargelegt, aber ich fand es gefaltet werden. Ich benutze die folgende Methode.

Ich habe ein Auge zu Semantik, aber was falsch mit einem Ansatz wie dem obigen Codebeispiel? Bitte geben Sie bei Bedarf Rückmeldung.

+0

Vielen Dank für die Problemumgehung. Ich habe nach so etwas gesucht. Ich hoffe, eines Tages wäre der KnpMenuBundle 2.x stabil und wir könnten die Wähler nutzen. –

+0

Nach der Anleitung von KnpMenuBundle für die Verwendung des Menüs als Dienst wird der Container nicht mehr benötigt. Sie können die Anforderung abrufen, indem Sie den Service auf den Anforderungsbereich beschränken. –

+0

Es ist erwähnenswert, dass diese Problemumgehung in einigen Fällen fehlschlägt. Zum Beispiel bei Verwendung der Paginierung. –