i knpmenubundle für meine Website verwenden und hier ist mein Problem: ich eine Liste der Benutzer über diese Route aufgelistet haben:/admin/users und das Menü ist wie folgt aus:KnpMenuBundle und dynamische Routen Parameter
User (is opened)
list (is active)
add new
in der Listenansicht die Position „Liste“ in dem Menü aktiv ist, wie ich in der neuen Ansicht hinzufügen mag, das Element ist aktiv im Menü „neue hinzufügen“ wie i
willaber , wenn ich bearbeiten möchte ein Benutzer die allready vorhanden sind, kann ich nicht aktiv die Position „Nutzer“ verwalten, da te Route einen dynamischen Parameter haben hier
ist, wie meine Seite strukturiert ist:
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/Zweig
{{ 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/Ressourcen/Ansicht/Common/LeftMenu/html.twig
{{ knp_menu_render('leftMenu', {'template':'dnAdminBundle:Menu:knp_menu.html.twig', 'currentClass':'active', 'ancestorClass':'active'}) }}
in src/dn/AdminBundle/Ressourcen/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/Menü/MenuBuilder.php Namensraum dn \ AdminBundle \ Menu;
Verwenden Sie Knp \ Menu \ FactoryInterface; Verwenden Sie Symfony \ Component \ HttpFoundation \ Request; Klasse 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);
}
aber $ request-> get ('id') leer Rückgabestring
Jeder Idee haben, wie ich die aktuellen Parameter in knpmenubundle bekommen kann?
Dank