Symfony sfwidgetformdoctrinchoice显示id数字而不是实际值


Symfony sfWidgetFormDoctrineChoice displays id numbers instead of actual values

我有一个user表和article表。当使用Symfony生成的表单创建新文章时,User下拉菜单/select显示数字(用户id数字,如1,2,3…)而不是用户名。

我显然可以用一个自定义的覆盖表单,以确保这个选择元素是用用户名而不是他们的ID号填充的,但我认为Symfony可能已经发现了这一点,只是我缺少了一些东西…

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

实际上,它将调用模型的__toString()方法。你可以在你的模型中重写它来返回任何字符串值。

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

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

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

我自己解决了这个问题。基本上,如果你有一个名为name的表列,那么Symfony将自动使用该字段填充下拉菜单。我碰巧用的是username。非常酷的设计理念,但我不记得在Symfony文档中读到过。哦。

相关文章:
  • 没有找到相关文章