我是Yii的初學者。我想在整個應用程序中訪問user_id。我該怎麼做?如何訪問yii框架中的用戶詳細信息?
class MainController extends Controller {
public function actionInitialize() {
$this->verifyDrupalUserIdentity();
}
private function verifyDrupalUserIdentity() {
new DrupalUserIdentity();
}
}
class DrupalUserIdentity extends CUserIdentity {
public function __construct() {
$this->authenticate();
}
public function authenticate(){
global $base_url;
$base_url = BASE_URL.'CA_Hive';
$currentPath = getcwd();
require_once DRUPAL_ROOT.'/includes/bootstrap.inc';
require_once DRUPAL_ROOT.'/includes/errors.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
chdir($currentPath);
global $user;
$this->username = $user->name;
new DrupalUser();
Yii::app()->user->setDrupalAttributes($user);
}
}
**
- 型號: -
**
class DrupalUser extends CWebUser {
private $_attributes;
private $_browser;
public $user_id;
public function setDrupalAttributes($attributes) {
$this->_attributes = $attributes;
$this->user_id = $this->_attributes->uid;
}
public function getUserId() {
return $this->user_id;
}
}
現在我可以通過使用的Yii ::應用在訪問用戶ID MainController () - >用戶> getUserId();
但問題是,我無法訪問SecondController中的user_id。如果我嘗試訪問它,它會給出空值。需要幫忙。
SecondController
class SecondController extends Controller {
public function getUserDetail() {
// Here i want the user ID
}
}
這就是問題,Yii :: app() - > user-> id。如果我在secondcontroller中使用它,則會給出空值。 – RashFlash
然後,用戶要麼未登錄,要麼以某種方式覆蓋自定義WebUser類中的getId()。所有你應該真正需要的是創建你自定義的UserIdentity,在那裏你驗證drupal用戶並保持其他部分不變。 –
是的,我已經覆蓋getId(),你可以在上面的代碼中看到。 – RashFlash