You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yii2 Menu组件点击父菜单无法跳转指定URL问题求助

解决Yii2 Menu组件父菜单无法跳转的问题

这个问题我之前也碰到过,Yii2的Menu组件默认就是这样的:当一个菜单项包含子菜单(items属性)时,父项的链接会被组件处理成仅用于展开/折叠子菜单的触发器,不会触发跳转——这是为了避免同时触发跳转和展开动作造成冲突。

要让父菜单既可以展开子菜单,又能跳转到指定URL,你可以通过给父菜单项添加自定义点击事件的方式解决,具体代码如下:

echo Menu::widget([
    'items' => [
        [
            'label' => 'Products',
            'url' => '/products',
            // 添加点击事件,强制触发跳转
            'linkOptions' => [
                'onclick' => 'window.location.href = this.href;'
            ],
            'items' => [
                [
                    'label' => 'New Products',
                    'url' => '/new-products'
                ]
            ]
        ]
    ]
]);

补充说明

如果你的项目使用了Bootstrap风格的菜单(Yii2默认集成Bootstrap),上述方法可以完美兼容,点击父菜单时会正常触发跳转,同时子菜单也能正常展开。

另外,还有一种更灵活的方式是自定义itemTemplate,不过对于这个场景来说,添加linkOptions的方法更简单直接,不需要修改组件的默认模板结构。

内容的提问来源于stack exchange,提问作者Roby Sottini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:50:10