我在使用MongoID和Yii中的url管理器时遇到了一些麻烦。
如果我有一个网址:
http://www.example.com/article/1
或
http://www.example.com/article/view/1
一切正常。现在为了这个问题。我正在使用MongoDB,所以我的网址看起来像这样:
http://www.example.com/article/50e18c655b0c4dce75000033
或
http://www.example.com/article/view/50e18c655b0c4dce75000033
每个场景都会抛出404找不到的错误,就像它无法进入actionView一样。配置中的我的网址管理器如下所示:
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>/<cid:\d+>'=>'<controller>/<action>',
),
),
我做错了什么,如何让MongoID注册为ID?
答案 0 :(得分:0)
有同样的问题。我的情况是邀请系统,确切地说十六进制是非常重要的,因为我也有InviteController。
'invite/<invite_key:[a-fA-F0-9-]+>'=>'site/invite',
在你的情况下,我认为它应该是这样的
'urlManager'=>array(
'urlFormat'=>'path',
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:[a-fA-F0-9-]+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>/<cid:\d+>'=>'<controller>/<action>',
),
),
也许您应该将<id:[a-fA-F0-9-]+>
更改为<cid:[a-fA-F0-9-]+>
,我真的不知道您的控制器是如何工作的。
我希望你早点找到解决方案。但谷歌在这里指出了几个要求。