symfony:myUser class =>如何访问自定义属性

时间:2011-06-02 10:26:41

标签: symfony1 sfdoctrineguard

我启用了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

如何访问此属性?

1 个答案:

答案 0 :(得分:5)

你混淆了两件事:myUser,又名。会话,和学说用户,又名。用户的数据库记录。

在symfony项目中,myUser类表示当前会话($ _SESSION超全局顶部的包装器)。

您可以通过$this->getUser()->getGuardUser()访问控制器中的数据库记录,这样您的关系就可以用作$this->getUser()->getGuardUser()->Personnage

另请参阅关于symfony书籍的温和介绍的user sessions部分。