io uso knpmenubundle per il mio sito e qui è il mio problema: Ho un elenco di utente elencato da questo percorso:/admin/utenti e il menu è in questo modo:KnpMenuBundle e dinamica del percorso parametro
User (is opened)
list (is active)
add new
nella vista elenco, la voce "lista" nel menu è attivo come voglio nella nuova visione aggiungere la voce "aggiungere nuove" nel menu è attivo come voglio
ma , quando voglio modificare un utente che esiste giá, non in grado di gestire per attivare la voce "utenti" perché te percorso ha un parametro dinamico
Ecco come il mio sito è strutturato:
in src/dn/AdminBundle /Resources/Config/routing.yml
# Users
### List
dnAdmin_usersList:
pattern: /users/{page}
defaults: { _controller: dnAdminBundle:User:list, page: 1 }
requirements:
page: \d*
### Edit
dnAdmin_userEdit:
pattern: /user/edit/{id}
defaults: { _controller: dnAdminBundle:User:edit}
requirements:
id: \d+
in app/ressources/view/layout/html/ramoscello
{{ render(controller("dnAdminBundle:Common:leftMenu")) }}
in src/dn/AdminBundle/Controller/CommonController
public function leftMenuAction()
{
return $this->render('dnAdminBundle:Common:leftMenu.html.twig');
}
in src/dn/AdminBundle/Resources/view/comune/LeftMenu/html.twig
{{ knp_menu_render('leftMenu', {'template':'dnAdminBundle:Menu:knp_menu.html.twig', 'currentClass':'active', 'ancestorClass':'active'}) }}
in src/dn/AdminBundle/Resources/config/services.yml
services:
dn_admin.menu_builder:
class: dn\AdminBundle\Menu\MenuBuilder
arguments: ["@knp_menu.factory"]
dn_admin.menu.leftMenu:
class: Knp\Menu\MenuItem
factory_service: dn_admin.menu_builder
factory_method: createLeftMenu
arguments: ["@request"]
scope: request
tags:
- { name: knp_menu.menu, alias: leftMenu }
in src/dn/AdminBundle/Menu/MenuBuilder.php spazio dei nomi dn \ AdminBundle \ Menu;
Utilizzare Knp \ Menu \ FactoryInterface; usa Symfony \ Component \ HttpFoundation \ Request; classe MenuBuilder { private $ factory;
/**
* @param FactoryInterface $factory
*/
public function __construct(FactoryInterface $factory)
{
$this->factory = $factory;
}
public function createLeftMenu(Request $request)
{
// root
$menu = $this->factory->createItem('root');
$menu->setChildrenAttributes(array('class' => 'sidebar-menu'));
// Users
$l = $menu->addChild('Users', array(
'uri' => '#',
));
$l->setAttribute('class', 'treeview');
$l->setChildrenAttribute('class', 'treeview-menu');
$l->addChild('Liste', array(
'route' => 'dnAdmin_userList',
));
$l->addChild('Edit', array(
'route' => 'dnAdmin_userEdit',
'routeParameters' => $request->get('id'),
))
->setDisplay(false);
}
ma $ request-> get ('id') ritorno stringa vuota
Qualcuno ha idea su come posso ottenere il parametro corrente in knpmenubundle?
Grazie