在Symfony2中,要持久化具有可空关联实体的表单,可以使用以下方法:
在实体类中,为关联实体设置@ORM\JoinColumn(nullable=true)
注解,以允许空值。例如:
/**
* @ORM\ManyToOne(targetEntity="RelatedEntity")
* @ORM\JoinColumn(nullable=true)
*/
private $relatedEntity;
在表单类型中,为关联实体字段设置required
属性为false
。例如:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('relatedEntity', EntityType::class, array(
'class' => 'AppBundle:RelatedEntity',
'choice_label' => 'name',
'required' => false,
'placeholder' => '-- 请选择 --',
));
}
确保在更改实体和表单类型后,更新数据库结构。运行以下命令:
php bin/console doctrine:schema:update --force
现在,表单应该可以接受空值,并在持久化实体时正确处理关联实体。
推荐的腾讯云相关产品:
产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云