我的模型中有一对多的单向关系。 User
有许多Status
之一。
使用doctrine这些映射为单向多对多,并在其中一个连接列上具有唯一约束。
我想使用symfony表单从状态表中选择状态,提交表单并让symfony保持关系。
我尝试了两种方法:
使用实体表单类型,但这会产生错误(由于多对多关系原则期望接收ArrayCollection
的实例而不是单个状态对象。
使用集合实体对象。使用此方法时,将在表单中呈现标识为status
的空div。我期望在哪里出现包含状态选项的选择框。
这是代码。我哪里错了?
实体代码:
/**
* @ORM\ManyToMany(targetEntity="Status")
*/
protected $status;
表单类型代码:
$builder->add('status', 'collection', array(
'type' => 'entity',
'allow_add' => true,
'options' => array(
'class' => 'SunflyCoreBundle:Status',
'property' => 'name',
))
);
表单模板代码:
<form action="{{ path('_product_create_process') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
HTML在页面上呈现:
<div id="product_status" data-prototype="STUFF THAT WONT RENDER ON SO"></div>