Bonjour,
J'essai de faire un menu avec le bundle KnpMenu et de gérer les Url avec les routes contenus dans mes fichiers yml j'ai presque réussi sauf que l'url reçu n'est pas parfait, il n'est pas absolue.
Mon bundle homepage :
J'ai une classe MenuBuilder que j'appel dans mon template de menu ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 #app/config/routing.yml root: pattern: / defaults: _controller: FrameworkBundle:Redirect:redirect route: home_homepage permanent: true home_homepage: pattern: /{_locale}/home/ defaults: { _controller: HomeBundle:Home:index}
Dans cette classe MenuBuilder je fais :{{ knp_menu_render('MenuBundle:Builder:mainMenu') }}
{{ knp_menu_render('MenuBundle:Builder:regLanguageMenu') }}
Le soucis c'est que $url ne me renvoi pas l'url absolue mais l'url actuel + /en/home/ ce qui me double l'url
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $factory = new MenuFactory(); $Coll = $this->getCollectionRoute(); $url = $Coll->generate('home_homepage', array('_locale' => 'en'), true); $menu = $factory->createItem('root'); $menu->addChild('Home', array('uri' => $url)); /* [... ] */ return $menu;
Donc a l'adresse : monsite/app_dev.php/en/home/ si je clique sur le menu home je me retrouve a monsite/app_dev.php/en/home//en/home
Comment puis je avoir monsite/app_dev.php/en/home/ ?
Parcque quand j'aurai monsite/app_dev.php/en/otrepage/ et que je cliquerais sur home il m'enverra vers monsite/app_dev.php/en/otrepage//en/home
Merci
Partager