Symfony1 symfony:myUser类=>;如何访问自定义属性

Symfony1 symfony:myUser类=>;如何访问自定义属性,symfony1,sfdoctrineguard,Symfony1,Sfdoctrineguard,我已经启用了sfDoctrineGuardPlugin,因此我将myUser类更改为我的类extendssfGuardSecurityUser 我已重写sfGuardUser模式以添加我自己的关系 Personnage: local: id foreign: user_id type: one onUpdate: CASCADE onDelete: CASCADE 生成模型时,如果转到BasesfGuardUser.class.php

我已经启用了sfDoctrineGuardPlugin,因此我将
myUser
类更改为我的类extends
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

如何访问此属性?

您混淆了两件事:myUser,又名。会话和条令用户,aka。用户的数据库记录

在symfony项目中,myUser类表示当前会话(位于$\u session superglobal之上的包装器)

您可以通过
$this->getUser()->getGuardUser()
访问控制器中的数据库记录,因此您的关系将作为
$this->getUser()->getGuardUser()->Personnage运行


另请参阅symfony书的温和介绍部分。

您混淆了两件事:myUser,又名。会话和条令用户,aka。用户的数据库记录

在symfony项目中,myUser类表示当前会话(位于$\u session superglobal之上的包装器)

您可以通过
$this->getUser()->getGuardUser()
访问控制器中的数据库记录,因此您的关系将作为
$this->getUser()->getGuardUser()->Personnage运行

另请参见关于symfony书的温和介绍部分