我想知道这是否可能,或者是否有更简单的方法来做到这一点。
在我想使用关系数据的许多页面上,现在我使用它的每个页面我都放置以下代码:
<?php
if(!Yii::app()->user->isGuest){
$user = User::model()->findByPk(Yii::app()->user->id);
}
?>
所以我可以在视图中使用以下内容:
$user->account->name
显示当前用户相关帐户的名称
如果我能做到以下几点就好了:
Yii::app->user->account->name
设置状态不是我要寻找的,因为它不仅是我要使用的帐户名称,而且我不想为我可能要使用的所有关系数据添加状态。
Solution
|
|
|
V
解决方案
我结合了两个答案的优点来创建以下内容:
class WebUser extends CWebUser {
private $_user;
public function getAccount(){
if(!$this->isGuest && (!isset($this->_user) || Yii::app()->user->id != $this->_user->id)){
$this->_user = User::model()->findByPk(Yii::app()->user->id);
}
if(!empty($this->_user)){
return $this->_user->account;
} else {
return false;
}
}
}
所以现在我可以使用以下内容:
Yii::app()->user->account->name
如果用户已登录并且没有存储数据或用户具有不同的 id,则上述方法会检索数据。
将它放在组件中,并确保将 Afnan 谈到的部分添加到配置 (main.php)
我接受阿夫南的回答,因为它对我帮助最大(我需要知道的部分)