onunix 2012-06-05 16:16:05 12931次浏览 23条回复 0 0 0

我使用srbac的过程: 安装好后,因为我有个表叫Abc,然后我创建了角色a,其有个task,为Abc Manager,Abc Manager有权限 Create abc

然后我修改abcconroller的 class AbcController extends CController 改为 class AbcController extends SBaseController

这个过程应该没有什么错误吧,然后访问:admin页面,出现错误

属性 "AbcController.menu" 未被定义.

D:\skill\finance\Yii\protected\views\layouts\column2.php(14)

02 <div class="span-19">
03     <div id="content">
04         <?php echo $content; ?>
05     </div><!-- content -->
06 </div>
07 <div class="span-5 last">
08     <div id="sidebar">
09     <?php
10         $this->beginWidget('zii.widgets.CPortlet', array(
11             'title'=>'Operations',
12         ));
13         $this->widget('zii.widgets.CMenu', array(
14             'items'=>$this->menu,
15             'htmlOptions'=>array('class'=>'operations'),
16         ));
17         $this->endWidget();
18     ?>
19     </div><!-- sidebar -->
20 </div>
21 <?php $this->endContent(); ?>

请问我的操作过程错在那里呢?

  • 回复于 2012-06-07 09:41 举报

    多谢,但是似乎还要加点东西
    1:在main.php中只设置

    'userclass'=>'User', //default: User
    'userid'=>'user_ID', //default: userid
    'username'=>'username', //default:username
    

    没有设置密码的对应关系,那是否存在问题啊?这个地方 $user->validatePassword($this->password) 能行吗?

    2:按照你的修改后,提示如下错误:

    PHP warning
    include(Member.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory 
    
    D:\skill\finance\yii-1.1.10.r3566\framework\YiiBase.php(418)
    
    406                 {
    407                     foreach(self::$_includePaths as $path)
    408                     {
    409                         $classFile=$path.DIRECTORY_SEPARATOR.$className.'.php';
    410                         if(is_file($classFile))
    411                         {
    412                             include($classFile);
    413                             break;
    414                         }
    415                     }
    416                 }
    417                 else
    418                     include($className.'.php');
    
  • 回复于 2012-06-07 10:22 举报

    呵呵, $user=Member::model()->find('LOWER(username)=?',array($username));
    这句话是我的,我的user表是Member 这块是进行密码验证,按照你自己的验证方式改下,验证成功的时候 加上

    $this->userid=$user->uid;//加上这句
    $this->username=$user->username;//加上这句
    

    也就是说权限对于登陆用户有效,如果没登陆只能访默认页面,如果要访问其它页会跳到登陆页面,而这些srbac已经为我们做好了

  • 回复于 2012-06-07 10:44 举报

    多谢,我知道了...

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