我已使用
在Yii2
中创建了自定义网址
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
'enablePrettyUrl' => true,
'rules' => array(
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'site/GetNewTicketsTechnician' => 'site/get-new-tickets-technician',
),
]
web.php中的(我使用的是基本模板)。
但是当我尝试使用
创建一个网址时yii\helpers\Url::to(['site/get-new-tickets-technician'])
它生成的网址为site/GetNewTicketsTechnician
而不是
site/get-new-tickets-technician .
有人知道在Yii2
中生成网址的正确方法吗?
答案 0 :(得分:2)
您的问题是最后一条规则('site/GetNewTicketsTechnician' => 'site/get-new-tickets-technician'
)。它有site/get-new-tickets-technician
作为目标路线,因此当您将其与Url::to()
一起使用时,它将被反向使用。
如果您需要该网址可以调用(您有来电请求),但又不想将其包含在createUrl
- 语句(生成链接)中,那么您必须将其配置为仅解析:
[
'mode' => \yii\web\UrlRule::PARSING_ONLY,
'pattern' => 'site/GetNewTicketsTechnician',
'route' => 'site/get-new-tickets-technician'
]