【发布时间】:2016-06-30 12:48:08
【问题描述】:
错误信息:
通过关系发现了一个新实体 'AppBundle\Entity\Tarifa#pesos' 未配置为级联 实体的持久化操作: AppBundle\Entity\TarifaPeso@0000000072d3bd4300000000232470d3。解决 这个问题:要么显式调用 EntityManager#persist() 未知实体或配置级联在 映射例如 @ManyToOne(..,cascade={"persist"})。如果你不能 找出导致问题的实体实施 'AppBundle\Entity\TarifaPeso#__toString()' 来获得线索。
Tarifa.php
/**
* @ORM\OneToMany(targetEntity="TarifaPeso", mappedBy="tarifa")
*/
private $pesos;
TarifaPeso.php
/**
* @ORM\ManyToOne(targetEntity="Tarifa", inversedBy="pesos", cascade={"persist"})
* @ORM\JoinColumn(name="tarifa_id", referencedColumnName="id")
*/
private $tarifa;
TarifaType.php
->add('pesos', CollectionType::class, array(
'entry_type' => TarifaPesoType::class,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false
))
控制器...
public function newAction(Request $request)
{
$tarifa = new Tarifa();
$form = $this->createForm('AppBundle\Form\TarifaType', $tarifa);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$entityManager = $this->getDoctrine()->getManager();
$entityManager->persist($tarifa);
$entityManager->flush();
$this->addFlash('success', 'project.created_successfully');
return $this->redirectToRoute('admin_post_index');
}
return $this->render('admin/tarifas/new.html.twig', array(
'form' => $form->createView(),
));
}
我错过了什么?真的累死了……请帮忙?
【问题讨论】:
-
您自己处理表单提交吗?
-
对不起,我忘了添加控制器代码,我已经更新了。我用 'merge' 更改了 'em->persist' 并且它可以工作,但它不存储嵌入类(TarifaPeso)......
标签: forms symfony doctrine embed