SYmfony2 で簡単なブログ エンジンを作成しています。
コメント側の ManyToOne に関連する 2 つのエンティティ コメントと記事があります。
// Comment.php
/**
* @ORM\ManyToOne(targetEntity="Am\BlogBundle\Entity\Article")
* @ORM\JoinColumn(nullable=false)
*/
private $article;
記事を削除しようとすると、この記事に関連するすべてのコメントを削除したいと思います。
//Am/BlogBundle/Controller/BlogController.php
public function delArticleAction(Article $article)
{
$em = $this->getDoctrine()
->getEntityManager();
$list_tags = $em->getRepository('AmBlogBundle:Tag')
->findAll();
$list_comments = $em->getRepository('AmBlogBundle:Comment')
->findBy(array('article_id'=>$article->getId()));
//In order to delete an article, we have to remove each object linked to an Article
foreach($list_tags as $value){
$article->removeTags($value);
}
foreach($list_comments as $value){
//We delete all the comments of an article
$em = $this->getDoctrine()->getManager();
$em->remove($value);
$em->flush();
}
// We remove the Article
$em = $this->getDoctrine()->getManager();
$em->remove($article);
$em->flush();
return $this->render('AmBlogBundle:Blog:delArticle.html.twig');
}
実際、私は自分の記事に関連付けられたコメントのみを取得したいと考えており、タグについても同様です:/
何が間違っているのかわかりませんか?いくつかの助けがいいでしょう:)
ありがとう