Yii模块无法在我的网站上运行

时间:2014-05-21 04:32:06

标签: php yii yii-extensions yii-modules

我有一个由yii framework提供支持的网站。

Yii版本: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',
            ),
        );

1 个答案:

答案 0 :(得分:4)

您缺少可以指导框架打开模块的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 Management