sfWidgetFormDoctrineChoice中的自定义值

时间:2011-03-03 13:00:56

标签: php forms symfony1 doctrine widget

我的用户模型包含名称姓氏列。我正在尝试使用sfWidgetFormDoctrineChoice在表单中创建一个选择器,默认情况下只显示名称值。

如何修改窗口小部件以显示名称和姓氏?我知道您可以在初始化窗口小部件时传递查询选项,但我无法使其工作:

$this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array(
    'model' => $this->getRelatedModelName('User'),
    'query' => Doctrine_Query::create()->select('u.name, u.surname')->from('User u'),
    'add_empty' => false)
));

谢谢!

1 个答案:

答案 0 :(得分:9)

使用method选项,在public function模型中创建所需方法名称的User。一个例子可能是:

$this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array(
    'model' => $this->getRelatedModelName('User'),
    'method' => 'getFullName',
    'add_empty' => false)
));

然后在你的lib / model / Doctrine / User.class.php文件中

public function getFullName() {
    return "{$this->getName()} {$this->getSurname()}";
}