如何将Yii框架导航栏Tutorial项设置为外部链接?
在Yii的Nav::widget配置中,直接使用url参数传入数组时,框架会默认将其解析为应用内部路由,自动拼接当前应用域名。要跳转外部页面,有两种可靠的解决方式:
方法一:直接传入完整的外部URL字符串
把url参数的值设为包含协议头(http://或https://)的完整外部URL字符串,框架会识别为外部链接,不再拼接域名:
[ 'label' => 'Tutorial', 'url' => 'https://google.com', // 直接填写完整外部URL ],
方法二:使用linkOptions配置href属性
如果需要保留url参数的其他逻辑(比如权限判断),可以通过linkOptions直接设置a标签的href属性,覆盖框架生成的内部链接:
[ 'label' => 'Tutorial', 'url' => '#', // 填写任意占位值即可,会被href属性覆盖 'linkOptions' => [ 'href' => 'https://google.com', 'target' => '_blank', // 可选:设置为新窗口打开外部链接 ], ],
关键注意点
- 必须确保外部URL包含
http://或https://协议头,否则框架仍会将其视为相对路径拼接应用域名。
内容的提问来源于stack exchange,提问作者Wellbeing Toolkit
相关产品推荐
相关产品推荐

