Symfony sfWidgetFormDoctrineChoice显示id号而不是实际值

时间:2011-08-16 21:59:57

标签: php symfony1 doctrine

我有一个user表和一个article表。使用Symfony生成的表单创建新文章时,用户下拉列表/选择会显示数字(用户ID号码,如1,2,3 ......),而不是用户名。

我显然可以用自定义覆盖表单,以确保这个选择元素填充了用户名而不是他们的ID号,但我认为Symfony可能已经想到了这个,并且我只有一些东西失踪了...

默认显示名称还是我做错了?

2 个答案:

答案 0 :(得分:5)

实际上,它会调用模型的__toString()方法。您可以在模型中覆盖它以返回任何字符串值。

class User extends BaseUser {
  public function __toString() {
    return $this->getUsername();
  }
}

或者,您可以将'method'选项传递给选择小部件。例如:

new sfWidgetFormDoctrineChoice(array('Model'=>'User','method'=>'getUsername'))

答案 1 :(得分:1)

我自己想出了问题。基本上,如果您有一个名为name的表列,则Symfony将自动使用此字段填充下拉菜单。我碰巧使用username。非常酷的设计理念,但我不记得在Symfony文档中阅读它。哦,好吧。