【发布时间】:2013-03-31 03:49:41
【问题描述】:
我正在尝试扩展集合表单以便使用自己的模板呈现它...
class ContactFieldType extends AbstractType
{
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'collection' => array('type' => new ContactType())
));
}
public function getParent()
{
return 'collection';
}
public function getName()
{
return 'contactField';
}
}
而我是这样使用这种类型的:
$builder->add('contacts',new ContactFieldType(), array(
'label_attr' => array('class' => 'contacts')
));
我收到以下错误:
表单的视图数据应为标量、数组或 \ArrayAccess 的实例,但它是类的实例 MyApp\MainBundle\Entity\Contact。您可以通过以下方式避免此错误 将“data_class”选项设置为 “MyApp\MainBundle\Entity\Contact”或通过添加视图转换器 转换类的实例 MyApp\MainBundle\Entity\Contact 到标量、数组或实例 的 \ArrayAccess。
如果我使用这个:
$builder->add('contacts','collection', array(
'type' => new ContactType(),
'label_attr' => array('class' => 'contacts')
));
效果很好。
我不想按照建议实现这个 data_class...我想扩展集合小部件
【问题讨论】:
标签: forms symfony collections custom-post-type