猫咪兔
- 猫咪兔 回复了话题 求助单选框无法显示在一行
<?php $sex_radiobuttonList = $form->radioButtonList($model,'gender',$sex, ''); $sex_radiobuttonList= str_replace("<label", "<span", $sex_radiobuttonList); $sex_radiobuttonList= str_replace("</label", "</span", $sex_radiobuttonList); echo $sex_radiobuttonList; ?>
这样就可以了,换上你相应的代码
用个扩展或插件吧
- 猫咪兔 回复了话题 关于使用场景、Model的问题
$model->save()
就可以了,save()的时候会自动rules验证
如果不明白可以去看下save()的源码 角色和任务都是你自己创建的,在配制srbac的时候只会让你写一个超级管理员的角色即:Authority 这个名子也是可以自己随便取的,至于你的Edit User和Edit Post这两个option应该是示例里的,如果你用不上都是可以删掉的
role是角色它包含task(task是任务),task又包含operation(operation是对应控制的action)
所以分配角色的时候,角色要有相应的任务,而任务又要有相应的action 一层层下来的。。。
不知道这样你能明白不- 猫咪兔 回复了话题 请教srbac使用过程中的问题
呵呵,
$user=Member::model()->find('LOWER(username)=?',array($username));
这句话是我的,我的user表是Member 这块是进行密码验证,按照你自己的验证方式改下,验证成功的时候 加上$this->userid=$user->uid;//加上这句 $this->username=$user->username;//加上这句
也就是说权限对于登陆用户有效,如果没登陆只能访默认页面,如果要访问其它页会跳到登陆页面,而这些srbac已经为我们做好了
- 猫咪兔 回复了话题 请教srbac使用过程中的问题
不用的,直接在UserIdentity
public $userid;
在public function authenticate() { $username=strtolower($this->username); $user=Member::model()->find('LOWER(username)=?',array($username)); if($user===NULL) $this->errorCode=self::ERROR_USERNAME_INVALID; else if(!$user->validatePassword($this->password)) $this->errorCode=self::ERROR_PASSWORD_INVALID; else { $this->userid=$user->uid;//加上这句 $this->username=$user->username;//加上这句 $this->errorCode=self::ERROR_NONE; } return !$this->errorCode; } public function getId() //重写getId()方法 { return $this->id; }
这样就行了
- 猫咪兔 回复了话题 请教srbac使用过程中的问题
在UserIdentity文件里,重写getId()方法
让它返回你的userid就行了 - 猫咪兔 回复了话题 请教srbac使用过程中的问题
dsfgfasdfadfsaff