我正在尝试以 2 个实体(例如 Product 和 Category 以制作 simpe)之间的形式实现 ManyToMany 关系,并使用带有原型和 javascript 的文档中描述的方法(http://symfony.com/doc/current/食谱/表格/form_collections.html)。
这是 ProductType 创建类别集合的行:
$builder->add('categories', 'collection', array(
'type' => 'entity',
'options' => array(
'class' => 'AppBundle:Category',
'property'=>'name',
'empty_value' => 'Select a category',
'required' => false),
'allow_add' => true,
'allow_delete' => true,
));
当我有一个新项目时,一个新的选择出现设置为空值“选择一个类别”。问题是,如果我不更改空值,它会被发送到服务器,并且在 $form->bind() 之后,我的 Product 对象会在 $category ArrayCollection 中获得一些空值。
我首先在 Product 实体中测试 setter 中的值,并在 ProductType 中添加 'by_reference'=>false,但在这种情况下,我得到一个异常,指出 null 不是 Category 的实例。
如何确保忽略空值?