Yii UrlManager 路由到自己的控制器而不是模块


Yii UrlManager route to own controller instead of module

我刚刚开始使用 Yii 框架,试图创建一个简单的应用程序。我添加了 yii-用户管理模块 (YUM),并遵循了简短的安装教程。

按照本教程,我创建了一个扩展 YumRegistrationController 的注册控制器 - 然后尝试在浏览器中加载它。但是,无论我如何更改 UrlManager 的配置,我都无法加载自己的控制器或视图(按照说明将视图复制到 protected/views/registration.registration.php)。

我不是唯一一个遇到相同问题的人 - 例如,请参阅此处 - 但我无法使任何解决方案正常工作。甚至重命名控制器都不起作用,所以我认为我的 UrlManager 设置存在根本性问题。

'urlManager'=>array(
        'urlFormat'=>'path',
        'showScriptName'=>false,
        'caseSensitive'=>false,   
        'rules'=>array(
            '<controller:'w+>/<id:'d+>'=>'<controller>/view',
            '<controller:'w+>/<action:'w+>/<id:'d+>'=>'<controller>/<action>',
            '<controller:'w+>/<action:'w+>'=>'<controller>/<action>',
        ),
    ),

YumRegistrationController 每次都会加载,或者我收到 404 错误。

我尝试了其他规则,例如:

'registration' => 'application.controllers.Registration',

或(重命名后)

'registration' => '//MyRegistration/registration',

甚至

'registration' => '//registration/registration/registration',

就像在我读过的一篇文章中一样,但没有任何效果。

请帮忙 - 我真的很想继续创建一个应用程序,而不仅仅是在设置上工作......

更新:/注册/注册

/注册工作,它只显示默认视图并加载控制器以进行 YUM 注册...

Yii 版本 1.1.10

我认为,您在配置main.php中注册了用户组件。所以请分享一下。我可以帮忙。

. 'loginUrl' => array('/user/user/login'),可能会导致问题。无需更改网址管理器。

         'user'=>array(
        'class'=>'application.components.WebUser',
          'allowAutoLogin'=>true,
          'loginUrl' => array('/user/login'),
          ),