エラーメッセージ:新しいエンティティが関係を通じて発見された
新しいエンティティが関係を通じて は、エンティティの操作を持続カスケード構成されていなかった 「AppBundle \エンティティ\タリファ#ペソ」になっていました。 : 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)は保存されません... – jmunozco