Yii模块不工作在我的网站


Yii modules not working on my site

我有一个使用yii框架的网站。

Yii Version: 1.1.14

Php版本:5.4以上

我试图从以下位置安装一个论坛模块

http://www.yiiframework.com/extension/bbii

我在main.php中添加了自述文件中指定的模块。但是/论坛不工作,我尝试了一些其他模块,没有一个在我的安装上工作。我现在卡住了,我试过谷歌,但它就像一个独特的错误,我不知道如何调试它。请帮助。由于

return array(
        'basePath'=>dirname(__FILE__).DIRECTORY_SEPARATOR.'..',
        'name'=>'testapp',
        'preload'=>array('log','bootstrap'),
        'import'=>array(
            'application.models.*',
            'application.components.*',
            'application.vendor.*',
            'application.controllers.NavSort*',
            ),
        'modules'=>array(
            'gii'=>array(
                'class'=>'system.gii.GiiModule',
                'password'=>'123',
                // If removed, Gii defaults to localhost only. Edit carefully to taste.
                'ipFilters'=>array('127.0.0.1','::1'),
                'generatorPaths' => array(
                        'bootstrap.gii'
                    ),
                ),
            'forum'=>array(
                'class'=>'application.modules.bbii.BbiiModule',
                'adminId'=>1,
                'userClass'=>'User',
                'userIdColumn'=>'id',
                'userNameColumn'=>'username',
                ),
            ),
        'homeUrl'=>array('site/login'),
        // application components
        'components'=>array(
            'bootstrap' => array(
                'class' => 'ext.yiibooster.components.Bootstrap',
                ),
            'user'=>array(
                // enable cookie-based authentication
                'allowAutoLogin'=>true,
                ),          
            'session'=>array(
                'autoStart'=>true,
                'sessionName'=>'session',
                'cookieMode' => 'only',
                'timeout'=>86400,
                ),
            'urlManager'=>array(
                'urlFormat'=>'path',
                'showScriptName'=>false,
                //'urlSuffix'=>'.html',
                'urlSuffix'=>'',
                'class' => 'UrlManager',
                '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'-]+>' => '<controller>/<action>',
                     // defaults to a site page if not above
                    '<view:[a-zA-Z0-9-]+>/'=>'site/login',
                    ),
                ),
            'db'=>array(
                'connectionString' => 'pgsql:host=localhost;port=5432;dbname=testdb',
                'emulatePrepare' => false,
                'username' => 'postgres',
                'password' => 'root', 
                //'tablePrefix'=>'',
                'charset' => 'utf8',
                ),
            'errorHandler'=>array(
                'errorAction'=>'site/error',
                ),
            'log'=>array(
                'class'=>'CLogRouter',
                'routes'=>array(
                    array(
                        'class'=>'CFileLogRoute',
                        'levels'=>'error, warning',
                        ),
                    ),
                ),
            ),
        'params'=>array(
            // this is used in contact page
            'adminEmail'=>'info@site.com',
            ),
        );

你缺少指引框架打开模块的URL规则。

可以同时使用通用规则

'<module:'w+>/<controller:'w+>/<action:['w-]+>' => '<module>/<controller>/<action>',
'<module:'w+>/<controller:'w+>'                 => '<module>/<controller>',
'<module:'w+>'                                  => '<module>',

或者您可以创建特定的规则

'forum/<controller:'w+>/<action:['w-]+>'        => 'forum/<controller>/<action>',
'forum/<controller:'w+>'                        => 'forum/<controller>',
'forum'                                         => 'forum',

区别只是当通用规则与其他规则冲突时,你应该使用更具体的规则。

例如,为了使我的应用程序中的Gii在我的多语言系统中正确工作,我使用以下规则
'gii/<controller:'w+>/<action:['w-]+>'          => 'gii/<controller>/<action>',

记住,URL规则在数组中的位置很重要。第一个匹配的,将触发打开那个特定的动作。阅读更多关于URL管理