Yii2 Bootstrap导航栏的标签URL没有干净的URL

时间:2016-01-22 00:47:32

标签: yii2 clean-urls

我仍处于开发阶段,我现在不想在Yii2中使用干净的网址。

我将以下代码添加到高级Yii2项目导航栏About以在“关于”下创建子菜单:

[
    'label' => 'About',
    'url' => ['/site/about'],
    'items' => [
        ['label' => 'Invoices', 'url' => 'invoices/index'],
    ]
],

通常,invoices控制器可以通过以下方式访问:/?r=invoices来自客户端的地址栏。但是,上面的代码会生成/invoices/index,这会产生Page not found error,因为我还没有启用干净的网址。

我的问题是,如果在启用干净的网址后保留代码的同时,如何在不启用干净网址的情况下添加,访问新菜单项?

1 个答案:

答案 0 :(得分:4)

url参数值由\yii\helpers\Url::to()方法处理:

  
      
  • false(默认值):生成相对网址。
  •   
  • true:返回绝对基本网址,其方案与\yii\web\UrlManager::hostInfo中的方案相同。
  •   
  • string:使用指定的方案生成绝对URL(httphttps)。
  •   

因此,如果将字符串传递给url参数,则将其视为绝对URL。要为给定路线创建网址,您需要传递数组,然后由\yii\helpers\Url::toRoute()处理:

'url' => ['invoices/index'],

它会考虑UrlManager设置,例如$enablePrettyUrl