2012-12-31 41 views
0

我在MongoID和Yii的url管理器中遇到了一些麻烦。MongoDB 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为IDS注册?

+0

'\ d +'匹配十进制数字,而不是十六进制。 – DCoder

+0

嗯,这部分我认为'',它只是数字的正则表达式,试试:''或者其他什么 – Sammaye

回答

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-]+>,我真的不知道该怎么控制器的作品。

我希望你早点找到解决方案。但谷歌在这里指出了几个要求。