我有一个Symfony请求的createAction。
如何通过创建新的实体值在另一个实体中添加一些值。
见下面的foreach部分;什么错了?
public function createAction(Request $request)
{
$entity = new FooType();
$form = $this->createForm(new FooTypeType(), $entity);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$em->persist($entity);
$em->flush();
$entities = $em->getRepository('OtherBundle:Lists')->findAll();
foreach($entities as $list){
$manager = $this->getDoctrine()->getManager();
$listValue = new ListValue();
$listValue->setSpecification( new ListsType(), $list );
$manager->persist($listValue);
$manager->flush();
}
return $this->redirect($this->generateUrl('foo_foobar_show', array('id' => $entity->getId())));
}
答案 0 :(得分:0)
如果您的实体之间存在正确的关联映射,并使用Doctrine的持久选项进行级联操作,则无需明确地保留相关实体。
在这种情况下你可以省略
$manager->persist($listValue);
此外,出于性能原因,请确保刷新您的entityManager 仅 - 您不需要经常刷新一次,除非您需要自动生成新持久化实体的ID!
在您的存储库(addListsToEntity())或管理器类中创建一个新方法以添加列表!