Ich benutze Symfony 2.8, ich habe One-to-many Beziehung zwischen Benutzer und Blog erstellt, (ein Benutzer viele Blogs). Außerdem habe ich eine Eins-zu-viele-Beziehung zwischen Blog und Kommentaren erstellt. Ähnlich eins-zu-viele Beziehung zwischen Benutzer und Kommentaren. Nun ist mein Kommentar Tabelle sieht wie folgt ausSymfony Speichern Sie Kommentare im Blog mit Benutzer und blogId
Kommentar Tabelle
id Primary int(11)
user_id Primary int(11)
blog_id Primary int(11)
comment varchar(2000)
created_at datetime
Kommentar Entity
Blog Entity
Benutzer Entity
Blog-Controller -> showaction Methode
/**
* @Route("/blog/show/{id}", name="blog_show")
*/
public function showAction(Request $request,$id)
{
$blog = $this->getDoctrine()->getRepository(Blog::class)->findOneById($id);
$comment = new Comment();
$form = $this->createForm(CommentType::class, $comment);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$user = new User();
$blog = new Blog();
$comment->setUser($this->getUser());
$comment->setBlog($blog);
$em = $this->getDoctrine()->getManager();
$em->persist($comment);
$em->flush();
return $this->redirect($this->generateUrl('blog_show', array('id' => $id)), 301);
}
return $this->render('Blog/show.html.twig', array('blog'=> $blog,'form' => $form->createView()));
}
Nun, wenn ich die Kommentarfunktion von Blog anzeigen Seite einreichen, ist es mir diese zeigen Fehler
"A new entity was found through the relationship 'AppBundle\Entity\Comment#blog' that was not configured to cascade persist operations for entity: AppBundle\Entity\[email protected] To solve this issue: Either explicitly call EntityManager#persist() on this unknown entity or configure cascade persist this association in the mapping for example @ManyToOne(..,cascade={"persist"}). If you cannot find out which entity causes the problem implement 'AppBundle\Entity\Blog#__toString()' to get a clue."
Was ich hier verpasst habe. Jede Hilfe wird sehr geschätzt. Dank
Es erzählt Sie haben keine Funktion namens "getBlog" in der Klasse. Ist das wahr? –
Wenn Sie meine Kommentar-Entität überprüfen, gibt es eine Funktion getBlog() definiert. Aber es zeigt immer noch diesen Fehler. – Aamir
Aber das ist in der 'Kommentar' Entität. Wenn Sie '$ this-> getBlog() aufrufen;' sucht diese Funktion im 'BlogController' selbst. Müssen Sie es stattdessen aus dem Formular bekommen? –