在Nav :: widget中,我编写了新的菜单项:
['label' => 'My profile', 'url' => ['/profile/professional&id='.$userlog->id]],
一切都好,我看到菜单中的链接。在菜单上悬停我在firefox中看到了很好的网址:
/index.php?r=profile/professional&id=22
当我clik时,它会将我重定向到
/index.php?r=profile%2Fprofessional%26id%3D22
我看到404错误。如果我将%2F和其他符号更改为斜杠,'&'和' =' - 这个网址正在工作。
我用utf-8编码保存菜单文件,为什么我看到带有%2F和其他符号的网址?怎么解决呢?
答案 0 :(得分:1)
这是因为%2F
,%26
和%3D
分别是/
,&
和=
的urlencoded字符。这是因为您将生成Url作为字符串。 Yii默认情况下Url会在url属性中对字符串进行编码。你需要使用这样的东西来使它工作
['label' => 'My profile','url' => [\Yii::$app->urlManager->createUrl(['/profile/professional','id'=>$userlog->id])]],
答案 1 :(得分:1)
您正在构建错误的网址。不需要像这样连接参数。
url
将由Url::to()
处理,因此请将代码更改为:
[
'label' => 'My profile',
'url' => ['/profile/professional', 'id' => $userlog->id],
],
官方文档: