在表单symfony2中持久化相关实体


persisting related entities in a form symfony2

我想询问在提交表单时持久化两个实体的可能性。这可能吗?

$em = $this->getDoctrine()->getManager();
        $em->persist($a);
        $em->persist($b);
        $em->flush();

知道我在两个实体之间有公共字段。实际上,字段是由于两个实体之间的多对一关系而生成的。此外,我将在第二个实体中添加一些字段。

是的,保留两个实体是可以的,但是首先检查你的实体关系,例如,如果A与B有oneToMany关系,那么你将在A实体中有一个addB()方法。

在这个特定用例中持久化相关实体就像在关系上添加cascade={"persist"}并持久化A一样简单。

如果你有一些特定的简单逻辑,你想添加到B之前保存AB相关的元素,你可以把这个逻辑在addB(),这样每次一个B元素被添加到你的A实体,你会得到你想要的变化(设置正确的状态,日期,…)