Yii2: меню не открывает URL - PullRequest
0 голосов
/ 23 мая 2018

Я использую Виджет меню Yii2 .Это мое меню

echo Menu::widget([
    'items' => [
        'label' => 'Products',
        'url' => '/products' // Not working.
        'items' => [
            [
                'label' => 'New Products',
                'url' => '/new-products'
            ]
        ]
    ]
]);

Но URL /products не работает, когда пользователь нажимает «Продукты», тогда необходимо открыть меню (оно работает), а также открыть URL /products (это не работает).

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вы не можете ожидать, что нажатие на элемент «продукт» откроет подменю и перенаправит на страницу /products.Это не имеет никакого смысла, так как вы будете перенаправлены на другую страницу, прежде чем вы сможете щелкнуть что-то в подменю.Поэтому при нажатии на «товары» отображается только выпадающее меню.Но эта ссылка на самом деле работает - попробуйте использовать среднюю кнопку мыши или отключить JavaScript в вашем браузере.

В вашем случае вы, вероятно, должны определить свое меню следующим образом:

echo Menu::widget([
    'items' => [
        'label' => 'Products',
        'url' => '/products'
        'items' => [
            [
                'label' => 'All Products',
                'url' => '/products'
            ],
            [
                'label' => 'New Products',
                'url' => '/new-products'
            ],
        ]
    ]
]);

Все навигационные ссылки должны быть в подменю.

0 голосов
/ 23 мая 2018

При указании URL-адресов для пунктов меню их необходимо указывать в виде controller/action, а не просто /controller, даже если используется действие по умолчанию.

Этонаписано сверху как Note в ссылке на класс yii-widgets-menu в самом первом примере кода под комментариями.

Поэтому измените ваш URL для элемента Products на

'url' => '/products/index'

, а также для new-products

'url' => '/products/new-products'

Надеюсь, этоhelp.

Примечание : при указании URL-адресов, таких как /controller/action, он добавляется в baseUrl или имя домена, удаляя все после этого.Например, если у вас есть домен http://example.com и вы находитесь на странице http://example.com/contact-us.Он заменит все после имени домена и добавит указанный вами http://example.com/controller/action, и если URL-адрес элемента меню будет выглядеть как controller/action, то при щелчке по нему будет добавлен существующий URL http://example.com/contact-us/controller/action.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...