Yii2 Bootstrap 导航栏的标签 URL 没有清理 URL
Yii2 Bootstrap navbar's label URL without clean URL
我仍在开发中,我现在不想在我的 Yii2 中使用干净的 URL。
我在高级的Yii2项目导航栏About
中添加了以下代码,在About下制作子菜单:
[
'label' => 'About',
'url' => ['/site/about'],
'items' => [
['label' => 'Invoices', 'url' => 'invoices/index'],
]
],
通常,invoices
控制器通过以下方式访问:/?r=invoices
从客户端的地址栏。但是,上面的代码生成了 /invoices/index
,它给出了 Page not found error
,因为我还没有启用干净的 URL。
我的问题是,如何在不启用干净 URL 的情况下添加可访问的新菜单项,同时在启用干净 URL 后保持代码不变?
url
参数值由\yii\helpers\Url::to()方法处理:
false
(default): generating a relative URL.
true
: returning an absolute base URL whose scheme is the same as that in \yii\web\UrlManager::hostInfo.
- string: generating an absolute URL with the specified scheme (either
http
or https
).
因此,如果您将字符串传递给 url
参数,它将被视为绝对值 url。为了给给定的路由创建 url,你需要传递数组,然后它将被 \yii\helpers\Url::toRoute():
处理
'url' => ['invoices/index'],
它会考虑UrlManager settings, such as $enablePrettyUrl。
我仍在开发中,我现在不想在我的 Yii2 中使用干净的 URL。
我在高级的Yii2项目导航栏About
中添加了以下代码,在About下制作子菜单:
[
'label' => 'About',
'url' => ['/site/about'],
'items' => [
['label' => 'Invoices', 'url' => 'invoices/index'],
]
],
通常,invoices
控制器通过以下方式访问:/?r=invoices
从客户端的地址栏。但是,上面的代码生成了 /invoices/index
,它给出了 Page not found error
,因为我还没有启用干净的 URL。
我的问题是,如何在不启用干净 URL 的情况下添加可访问的新菜单项,同时在启用干净 URL 后保持代码不变?
url
参数值由\yii\helpers\Url::to()方法处理:
false
(default): generating a relative URL.true
: returning an absolute base URL whose scheme is the same as that in \yii\web\UrlManager::hostInfo.- string: generating an absolute URL with the specified scheme (either
http
orhttps
).
因此,如果您将字符串传递给 url
参数,它将被视为绝对值 url。为了给给定的路由创建 url,你需要传递数组,然后它将被 \yii\helpers\Url::toRoute():
'url' => ['invoices/index'],
它会考虑UrlManager settings, such as $enablePrettyUrl。