使用Symfony和Doctrine,我有一个多选列表框。需要根据Doctrine查询生成多个默认值。
$this->setWidgets(array(
'folders' => new sfWidgetFormDoctrineChoice(array(
'model' => 'FolderItem',
'order_by' => array('name', 'asc'),
'multiple' => true,
'query' => FolderItemTable::getUserInstance($user),
))
));
这会为我提供所有文件夹项目的列表;但是,我希望它们是由文件夹列表预先选择的。例如,如果我Folder 1
包含item a
item b
,item c
和Folder 2
包含item d
和item e
;如果传递了Folder 1
,我希望选择item a
item b
和item c
,但我希望列表中有item d
和item e
,但不是选中(但可选择)
答案 0 :(得分:2)
如果您使用Doctrine关系填充列表,则可以在表单类中执行以下操作
$this->setDefault('folders', $this->object->Users->getPrimaryKeys());
您还可以传递包含要选择的值的数组
$this->setDefault('folders', array(125,2049,12));