MongoDB Yii和URL Manager

时间:2012-12-31 14:17:24

标签: php mongodb yii

我在使用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找不到的错误,就像它无法进入ac​​tionView一样。配置中的我的网址管理器如下所示:

'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?

1 个答案:

答案 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-]+>,我真的不知道您的控制器是如何工作的。

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