我对 Symfony2 的表单类型“集合”与学说的列“数组”有一个简单的问题。**
我的实体:
/**
* @Column(type="array", nullable=true)
* @var array
*/
private $specifications;
我的“主要”表格:
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('specifications', 'collection', array (
'type' => new ProductSpecificationType(),
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false
)
);
}
我的“ProductSpecificationsType”表格:
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('group', 'text')
->add('info', 'text')
;
}
我的输出带有按钮(树枝):
{{ form_row(form.specifications) }}
<a data-prototype="{{ form_widget(form.specifications.vars.prototype) | e }}" href="#" onclick="return false;">Add</a>
真正的输出是这个(html):
<a data-prototype="" href="#" onclick="return false;">Add</a>
如果我只使用 form_widget 而不是最后的“e”,就像“escape”一样。
保存后,实体与数组 column = null 一起保存。
因此,如果我将每个 FireBug 的这些行手动添加到 html 表单中
<input type="text" name="product[specifications][0][group]" value="Exam">
<input type="text" name="product[specifications][0][info]" value="ple">
<input type="text" name="product[specifications][1][group]" value="Extra">
<input type="text" name="product[specifications][1][info]" value="Example">
然后按“保存”,实体以这种格式保存:
a:2:{i:0;a:2:{s:5:"group";s:4:"Exam";s:4:"info";s:3:"ple";}i:1;a:2:{s:5:"group";s:5:"Extra";s:4:"info";s:7:"Example";}}
我的问题:
为什么我的原型是空的?
为什么 form_widget 是空的?(如果我手动填写上面的数据也是空的!)
先感谢您!