通过扩展CWebUser添加信息到Yii:app()->user [ 未指定版本 ]
我发现了一个更好的解决方案。
(您的登录验证可能与我的版本不同,因此你将会使用适合脚本,以满足您的需求。我只告诉你我的意思)
步骤:1、添加$user属性到UserIdentity类。 添加getUser()方法-getter上面这个属性。加setUser($user)方法-setter上面这个属性,它可以赋值给user的信息通过$user这个属性。
我的UserIdentity类例子:
<?php
class UserIdentity extends CUserIdentity
{
/**
* User's attributes
* @var array
*/
public $user;
public function authenticate()
{
$this->errorCode=self::ERROR_PASSWORD_INVALID;
$user=User::model()->findByAttributes(array('email'=>CHtml::encode($this->username)));
if ($user)
{
if ($user->password === md5($user->salt.$this->password)) {
$this->errorCode=self::ERROR_NONE;
$this->setUser($user);
}
}
unset($user);
return !$this->errorCode;
}
public function getUser()
{
return $this->user;
}
public function setUser(CActiveRecord $user)
{
$this->user=$user->attributes;
}
}
?>
现在用户的属性已经设置,创建WebUser类并把它放在/protected/components
<?php
class WebUser extends CWebUser
{
public function __get($name)
{
if ($this->hasState('__userInfo')) {
$user=$this->getState('__userInfo',array());
if (isset($user[$name])) {
return $user[$name];
}
}
return parent::__get($name);
}
public function login($identity, $duration) {
$this->setState('__userInfo', $identity->getUser());
parent::login($identity, $duration);
}
}
?>
记得设置一下这个类Yii::app()->user
<?php
'components'=>array(
'user'=>array(
'class'=>'WebUser',
)
)
?>
应该工作了,你现在可以用user的属性访问用户数据库中列。
╃巡洋艦㊣ 北京
注册时间:2010-11-21
最后登录:10小时前
在线时长:1674小时13分
最后登录:10小时前
在线时长:1674小时13分
- 粉丝1369
- 金钱76368
- 威望845
- 积分101558
共 7 条评论
舰长的方法确实不错,我用了一下,不过在使用的时候发现YII里原来是提供这样的方法
<?php class UserIdentity extends CUserIdentity { /** * User's attributes * @var array */ private $_userId; public function authenticate() { $this->errorCode=self::ERROR_PASSWORD_INVALID; $user=User::model()->findByAttributes(array('email'=>CHtml::encode($this->username))); if ($user) { if ($user->password === md5($user->salt.$this->password)) { $this->errorCode=self::ERROR_NONE; $this->_userId=$users->id; $this->setPersistentStates($users->attributes);//这个方法是在Login之前调用 } } return !$this->errorCode; public function getId() { return $this->_userId; } } } ?>
找到下载了。 ^_^
'params'=>array('directory'=>'/opt/local/bin')
directory对应的键值是什么?
Yii::app()->image->load('images/test.jpg');
里面的路径是相对路径?$image->save();
不需要写路径?能加点自己的理解么?不要照搬,拜托
@chenyi62191056
自己的问题别怪别人,别人给你提供餐具和食物已经很不错了,还要人喂你就不厚道了
怎么看不到评论了
在哪儿下载
修改 UserIdentity.php
$this->setPersistentStates($user->attributes);