我有一个与另一个实体有 OneToOne 关联的实体。出于这些目的,我将调用初始实体“父”和关联的实体“子”。
我有一个嵌入子表单的父表单工作正常,并且两个实体的所有表单元素都出现了,我可以将数据很好地保存在控制器中。
现在我想为嵌入式学说实体中的许多属性设置默认值。我可以在控制器中为新实体设置值,但子实体是在嵌入式表单类中创建的:
// Parent form
class Parent extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
//parent->add(...)
$builder->add('child', new Child(), array());
}
// In Child Form
class Child extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('visibilitycode', 'entity', array('label' => 'Visibility', 'class'=>'Acme\MyBundle\Entity\Visibility', 'property'=>'name'));
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Acme\MyBundle\Entity\Child',
);
}
其中许多默认值用于关联的外键,所以如果我在控制器中设置它们,我可能会使用这样的东西:
$child->setVisibilityCode($em->getReference('AcmeMybundle:Visibility', 'P'));