我正在使用Symfony 2.6.1。
实体配置:http://pastebin.com/rMkYHjkE
管理员课程:
class PlaceAdmin extends Admin
{
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
//other fields
->add('types', 'collection', array(
'type' => new PlaceType,
'allow_add' => true,
));
;
}
//other stuff
}
当我尝试编辑所选实体时:
“string”类型的预期参数 Symfony \ Component \ Form \ ResolvedFormTypeInterface或 Symfony的\分量\表格\ FormTypeInterface” 给出了“Syloc \ Bundle \ GooglePlacesBundle \ Entity \ PlaceType”
答案 0 :(得分:1)
来自the docs:
这是此集合中每个项目的字段类型(例如文本,选项等)。例如,如果您有一组电子邮件地址,则可以使用该电子邮件类型。如果要嵌入其他表单的集合,请创建表单类型的新实例并将其作为此选项传递。
所以你想做类似的事情:
class PlaceAdmin extends Admin
{
// Fields to be shown on create/edit forms
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
//other fields
->add('types', 'collection', array(
'type' => 'text',
'allow_add' => true,
));
;
}
//other stuff
}
您没有为collection
表单类型定义实体类型。也许您还希望sonata_type_collection
,而不只是collection
?您也不需要通过此表单类型传递子实体类型,因为它自动从实体属性中解析。