2013-06-20 3 views
0

Как связать Yii: app() -> пользователь к модели Пользователь. Это был тип соединения: Yii :: приложение() -> user-> GetUser()Как связать CWebUser с моделью Пользователь

Например, я хочу, чтобы в настоящее время вошли в систему электронной почты пользователя:

Yii :: приложение() -> user-> GetUser() -> по электронной почте;

Я прочитанные вики пост: http://www.yiiframework.com/wiki/80/add-information-to-yii-app-user-by-extending-cwebuser-better-version/

ответ

2

MyWbuser. php в компонентах:

class MyWebUser extends CWebUser{ 

    private $_profile = null; 
    public $loginUrl='/'; 

    public function init(){ 
     parent::init(); 
     if(!$this->getIsGuest()){ 
      $this->_profile = User::model()->findByPk($this->getId()); 
     } 
    } 
    public function getProfile(){ 
     return $this->_profile; 
    } 
} 

В config.php:

'user' => array(
     'class' => 'MyWebUser', 
    ) 

Затем вы можете использовать:

Yii::app()->user->profile->name 
+0

Это хорошая идея) Насколько я понимаю, вместо UserIdentity? – frops

+0

Да, он расширяет CWebUser – HarryFink

+0

Спасибо, Гарри) – frops

1

Попробуйте добавить этот код в ваш UserIdentity функции AUTHENTICATE

$this->setState('email',$this->email); 

и использовать для доступа к этой электронной почте в любом месте, как показано

Yii::app()->user->getState('email'); 
+0

Это хорошая идея. Спасибо, Нинад) Кстати, со вчерашней задачей я справился =) @Ninad – frops

+0

Good Cheers :) В чем была проблема? – Ninad

+0

Я использовал модель User вместо RegisterForm) – frops

Смежные вопросы