Пользовательские значения в sfWidgetFormDoctrineChoice - PullRequest
1 голос
/ 03 марта 2011

У меня есть Пользователь модель с имя и фамилия столбцы. Я пытаюсь создать селектор в форме, используя sfWidgetFormDoctrineChoice, которая по умолчанию отображает только значения name .

Как я могу изменить виджет, чтобы отображать имя и фамилию ? Я знаю, что вы можете передать опцию запроса при инициализации виджета, но я не могу заставить его работать:

$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 Ответ

9 голосов
/ 03 марта 2011

Используйте параметр 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()}";
}
...