2011-06-02 47 views
0

我已啓用sfDoctrineGuardPlugin,所以我已將myUser類更改爲我的類擴展sfGuardSecurityUsersymfony:myUser class =>如何訪問自定義屬性

我已經overrided sfGuardUser架構添加自己的關係

Personnage: 
     local: id 
     foreign: user_id 
     type: one 
     onUpdate: CASCADE 
     onDelete: CASCADE 

當生成的模型,如果BasesfGuardUser.class.php去了,我可以在PHPDoc的看評論創建我的關係和財產Personnage一直添加。

* @property Personnage $Personnage 

但我不明白當我嘗試訪問這個屬性,我不能。

在控制器:

$user = $this->getUser(); 
$user->Personnage; 

鑑於:

echo $sf_user->Personnage 

和錯誤:

Notice: Undefined property: myUser::$Personnage 

我如何可以訪問這個屬性?

回答

5

你在混合兩件事:myUser,又名。會話和學說用戶,又名。用戶的數據庫記錄。

在symfony項目中,myUser類表示當前會話(在$ _SESSION超全局之上的包裝器)。

您可以通過$this->getUser()->getGuardUser()訪問控制器中的數據庫記錄,因此您的關係將以$this->getUser()->getGuardUser()->Personnage的方式工作。

另請參閱關於symfony書籍的簡潔介紹user sessions的部分。