0

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

我怎样才能访问这个属性?

4

1 回答 1

5

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

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

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

另请参阅Gentle Introduction to symfony 书中有关用户会话的部分。

于 2011-06-02T11:38:23.707 回答