我启用了sfDoctrineGuardPlugin,因此我将myUser
类更改为我的类sfGuardSecurityUser
。
我已经覆盖了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
如何访问此属性?
答案 0 :(得分:5)
你混淆了两件事:myUser,又名。会话,和学说用户,又名。用户的数据库记录。
在symfony项目中,myUser类表示当前会话($ _SESSION超全局顶部的包装器)。
您可以通过$this->getUser()->getGuardUser()
访问控制器中的数据库记录,这样您的关系就可以用作$this->getUser()->getGuardUser()->Personnage
。
另请参阅关于symfony书籍的温和介绍的user sessions部分。