我经常搜索并尝试了很多,但没有运气。我已经提到了LINK。但它没有解决我的问题。我在yii(yii 2)中安装了一个用户模块。我有像
这样的用户个人资料网址http://192.168.1.31/Eb/user/profile?uguid=ac0c4558-77fc-4896-9b30-f77afe4d81cd
但我希望这样喜欢
http://192.168.1.31/Eb/user/profile/ac0c4558-77fc-4896-9b30-f77afe4d81cd
我的意思是没有guid查询字符串参数。 我正在尝试像这样的网址管理器
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<action:\w+>/<guid:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
怎么可能?
答案 0 :(得分:0)
在rules
参数(属性)的Yii UrlManager键必须是正则表达式。
如果我理解为你的网址有一个结构CONTROLLER / ACTION(在我的情况下Eb
是子文件夹),那么你的规则必须是:
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<action:\w+>/<uguid:\w+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
)
请注意,您的uguid
参数不是数字,因此您必须使用w+
代替d+
因此,您可以使用createUrl创建网址:
Yii::app()->createUrl('user/profile', array('uguid' => 'USER_ID'))
结果必须提供你想要的。
答案 1 :(得分:0)
您也可以使用
访问您当前的网址http://192.168.1.31/Eb/user/profile/uguid/ac0c4558-77fc-4896-9b30-f77afe4d81cd
您可以通过在urlmanager规则中添加以下行来删除您的控制器名称:
'/Eb/user/profile/<id:([0-9a-zA-Z_\-]+)' => 'Eb/user/profile/uguid/<id>'
应该这样做:)