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

Jak*_*son 1 php doctrine symfony1

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

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

它应该默认显示名称还是我做错了什么?

Ger*_*rry 5

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

class User extends BaseUser {
  public function __toString() {
    return $this->getUsername();
  }
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以将"方法"选项传递给选择小部件.例如:

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