在symfony中获取id以外的外键字段

时间:2011-05-10 12:00:27

标签: php symfony1 doctrine

我有一个表'评论',调查有一个字段引用另一个表'sf_guard_user'。在我放

的那一刻
<?php echo $investigationComment->getUserId() ?>

我得到外表行的id值。我希望能够获得名称字段值。

在我的项目中的其他地方,我能够从getUserId()中省略id,然后put-&gt; getName()并且它带给我那个字段值,但是为此它不会出于某种原因这样做。如何获取外键行的名称值?

2 个答案:

答案 0 :(得分:5)

首先获取关系对象,然后调用该关系的任何属性。

<?php echo $comment->getUser()->getName() ?>

如果你在关系中定义了一个别名'User',这将有效:

//config.yml
Comment:
  relations:
    sfGuardUser:
      alias: User
      foreignAlias: Comments
      local: user_id
      foreign: id

//config.yml
Comment:
  relations:
    User:
      class: sfGuardUser
      foreignAlias: Comments
      local: user_id
      foreign: id

答案 1 :(得分:0)

最简单的方法是添加以下外国实体类

public function __toString(){
    return $this->getAPropertyOnYourEntity();
}

现在,不是返回ID,实体可以从__toString()函数返回任何所需的属性。