我在yii2上学习, 制作网址时我遇到了问题。 这是我的网址配置
'urlManager' => [
'class' => 'yii\web\UrlManager',
// Disable index.php
'showScriptName' => false,
// Disable r= routes
// 'enableStrictParsing' => false,
'enablePrettyUrl' => true,
'rules' => array(
'category/<id:\S+>' => 'category/detail',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'request-password-reset' => 'site/request-password-reset',
'reset-password/<token:\S+>' => 'site/reset-password',
'profile/<id:[0-9a-zA-Z\-]+>/?' => 'profile/user',
'logout' => 'site/logout',
'login' => 'site/login',
),
],
问题在于配置文件路由。 在这种情况下:
我真的很困惑,我一直在寻找上一个问题并尝试不用处理我的案子。
有人能解决我的问题吗?
答案 0 :(得分:1)
只需将您的个人资料别名移到列表顶部:
'profile/<id:[0-9a-zA-Z\-]+>/?' => 'profile/user',
'category/<id:\S+>' => 'category/detail',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
'request-password-reset' => 'site/request-password-reset',
'reset-password/<token:\S+>' => 'site/reset-password',
'logout' => 'site/logout',
'login' => 'site/login',
由于在'<controller:\w+>/<action:\w+>' => '<controller>/<action>'
之前定义了'profile/<id:[0-9a-zA-Z\-]+>/?' => 'profile/user'
,它永远不会到达个人资料,因为它将其视为控制者/行动。