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 :

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}
J'ai une classe MenuBuilder que j'appel dans mon template de menu ainsi :

{{ knp_menu_render('MenuBundle:Builder:mainMenu') }}
{{ knp_menu_render('MenuBundle:Builder:regLanguageMenu') }}
Dans cette classe MenuBuilder je fais :

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

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