Symfony KnpMenu нет текущего класса в пункте меню

Я изучаю и начинаю использовать пакет KnpMenu. Я читал, что «... текущий класс добавляется к «текущему» пункту меню с помощью uri..», но я не могу понять, что именно это означает. Я попробовал меню из 2 пунктов, например:

class DefaultController extends Controller
{
    /**
     * @Route("/", name="homepage")
     */
    public function indexAction(Request $request)
    {

а также

**
 * Controller used to manage blog contents in the backend.
 *
 * @Route("/admin/post")
 * @Security("has_role('ROLE_ADMIN')")
 *
 */
class BlogController extends Controller
{
      /**
     * Lists all Post entities.
     *
     * @Route("/", name="admin_index")
     * @Route("/", name="admin_post_index")
     * @Method("GET")
     */
    public function indexAction()
    {

со следующим застройщиком

public function mainMenu(FactoryInterface $factory, array $options)
    {
        $menu = $factory->createItem('root');

        $menu->addChild('Home', array('route' => 'homepage'));

        $menu->addChild('Blog', array('route' => 'admin_post_index'));

        return $menu;
    }

Когда я выбрал домашнюю страницу, у элемента li были атрибуты класса first и current — и это хорошо, — но когда я выбрал страницу блога, элемент li имел только атрибут класса last, но не атрибут класса current. Я не понимаю, почему?


person meaulnes    schedule 22.07.2016    source источник


Ответы (1)


Это может быть вызвано тем, что у вас есть несколько маршрутов с одним и тем же URL-адресом / в BlogController:

 * @Route("/", name="admin_index")
 * @Route("/", name="admin_post_index")

Если у вас один и тот же URL-адрес, нет необходимости в нескольких маршрутах, просто используйте один и тот же маршрут повторно.

person Konstantin Pereiaslov    schedule 22.07.2016