yii2 高级 2.06 createAbsoluteUrl
yii2 advanced 2.06 createAbsoluteUrl
我正在使用 urlManager 的 createAbsoluteUrl 方法来生成 URL 以通过消息 ID 查看我的消息模型的实例。
Yii::$app->urlManager->createAbsoluteUrl(['/message/view', 'id'=>$model->id, '#' => $model->id])
这会生成-
http://localhost/advancedyii2/frontend/web/index.php?r=message#
但是,我需要-
http://localhost/advancedyii2/frontend/web/index.php?r=message%2Fview&id=1
你能找出问题所在吗?
谢谢,
pf
您需要为 url 编写规则:
URL web.php
中的管理器规则配置
'components' => [
'urlManager' => [
'showScriptName' => false, // Disable index.php
'enablePrettyUrl' => false, // Disable r= routes
'enableStrictParsing' => true,
'rules' => array(
'mycategory/<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
//Rules with Server Names
'http://admin.domain.com/login' => 'admin/user/login',
'http://www.domain.com/login' => 'site/login',
'http://<country:\w+>.domain.com/profile' => 'user/view',
'<controller:\w+>/<id:\d+>-<slug:[A-Za-z0-9 -_.]+>' => '<controller>/view',
),
],
],
您可以根据需要自定义 url。
More information
我正在使用 urlManager 的 createAbsoluteUrl 方法来生成 URL 以通过消息 ID 查看我的消息模型的实例。
Yii::$app->urlManager->createAbsoluteUrl(['/message/view', 'id'=>$model->id, '#' => $model->id])
这会生成- http://localhost/advancedyii2/frontend/web/index.php?r=message#
但是,我需要- http://localhost/advancedyii2/frontend/web/index.php?r=message%2Fview&id=1
你能找出问题所在吗?
谢谢, pf
您需要为 url 编写规则: URL web.php
中的管理器规则配置'components' => [
'urlManager' => [
'showScriptName' => false, // Disable index.php
'enablePrettyUrl' => false, // Disable r= routes
'enableStrictParsing' => true,
'rules' => array(
'mycategory/<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
//Rules with Server Names
'http://admin.domain.com/login' => 'admin/user/login',
'http://www.domain.com/login' => 'site/login',
'http://<country:\w+>.domain.com/profile' => 'user/view',
'<controller:\w+>/<id:\d+>-<slug:[A-Za-z0-9 -_.]+>' => '<controller>/view',
),
],
],
您可以根据需要自定义 url。 More information