yanming-dong 2012-08-16 11:24:23 4267次浏览 6条回复 0 0 0

最近在研究srbac, 按照文档装了一下。各种问题. 囧...

属性 "CPhpAuthManager.db" 未被定义.

/var/www/app/protected/modules/srbac/SrbacModule.php(244)
232   public function getShowFooter() {
233     return $this->_showFooter;
234   }
235 
236 
237 
238   /**
239    * Checks if srbac is installed by checking if Auth items table exists.
240    * @return boolean Whether srbac is installed or not
241    */
242   public function isInstalled() {
243     try {
244       $tables = Yii::app()->authManager->db->schema->tableNames;

ps: /cofig/main.php 里面是用数据库做授权处理,为毛会出现CPhpAuthManager?

  • 回复于 2012-08-16 12:58 举报

    authManager在配置文件里配置好了吗?

  • 回复于 2012-08-16 13:02 举报

    配置好了。 使用DB做授权处理的.

     19     'import'=>array(
     20         'application.models.*',
     21         'application.components.*',
     22         'application.extensions.*',
     23         'application.modules.srbac.controllers.SBaseController',
     24     ),
     26     'modules'=>array(
     43         'srbac' => array(
     44             'userclass'=>'User',
     45             'userid'=>'id',
     46             'username'=>'username',
     47             'debug'=>true,
     48             'pageSize'=>10,
     49             'superUser' =>'Authority',
     50             'css'=>'srbac.css',
     51             'layout'=>'application.views.layouts.main',
     52             'notAuthorizedView'=>'srbac.views.authitem.unauthorized',
     53             'alwaysAllowed'=>array('SiteLogin','SiteLogout','SiteIndex','SiteAdmin','SiteError', 'SiteContact'),
     54             'userActions'=>array('Show','View','List'),
     55             'listBoxNumberOfLines' => 15,
     56             'imagesPath' => 'srbac.images',
     57             'imagesPack'=>'noia',
     58             'iconText'=>true,
     59             'header'=>'srbac.views.authitem.header',
     60             'footer'=>'srbac.views.authitem.footer',
     61             'showHeader'=>true,
     62             'showFooter'=>true,
     63             'alwaysAllowedPath'=>'srbac.components',
     64         ),
     65     ),
     91         'autoManager'=>array(
     92             'class'=>'application.modules.srbac.components.CDbAuthManager',
     93             'connectionID'=>'db',
     94         ),
     95         'db'=>array(
     96             'class'=>'CDbConnection',
     97             'connectionString' => 'mysql:host=localhost;dbname=webinfosys',
     98             'emulatePrepare' => true,
     99             'username' => 'root',
    100             'password' => 'admin',
    101             'charset' => 'utf8',
    102         ),
    
  • 回复于 2012-08-16 13:17 举报
    'authManager'=>array(
        'class'=>'application.modules.srbac.components.SDbAuthManager',
        'connectionID'=>'db',
        'itemTable'=>'{{items}}',
        'assignmentTable'=>'{{assignments}}',
        'itemChildTable'=>'{{itemchildren}}',
    ),
    

    authManager没有配置完整。看看数据库建了吗?

  • 回复于 2012-08-16 13:35 举报

    数据库用了,../web/auth/schema-mysql.sql 里面的表。
    我打印了Yii::app()->autoManager变量,里面确实已经是之前设定的DB授权方式,在其他的module里面也是,唯独到srbac模块就出现CPhpAuthManager.db未定义.
    我在怀疑srbac里面的局部变量导致全局变量发生了改变?

  • 回复于 2012-08-16 13:46 举报

    谢谢你的回复,我在main.php里面用了autoManager, srbac模块里面是authManager, 他找不倒autoManager就默认CHphauthManager了...错了一个字母就出现了这样的情况,话说,这中错误还是很低级..再次感谢你的回复.

  • 回复于 2012-08-16 13:59 举报

    哎。。低级错误。。。

您需要登录后才可以回复。登录 | 立即注册