deleteAction:为什么要删除与此博客关联的类别?
我正在使用Symfony2在这个界面上工作,在这里我有博客和与他们相关的类别,有时我们想删除不再有效的博客,所以我想删除博客,我将这个功能添加到控制器,它消除了博客,但在同一时间,它会删除所有相关类别:deleteAction:为什么要删除与此博客关联的类别?
public function deleteAction(Request $request, $id) {
$form = $this->createDeleteForm($id);
$form->bind($request);
if ($form->isValid()) {
$em = $this->getDoctrine()->getManager();
$blawg = $em->getRepository('BlogBundle:Blog')->find($id);
if (!$blog) {
throw $this->createNotFoundException('Unable to find Blog entity.');
}
$em->remove($blog);
$em->flush();
}
return $this->redirect($this->generateUrl('blogs_inactive'));
}
我能做些什么,只删除博客信息? 在数据库中我有以下表格(Synfony2上的实体): 博客,供稿,分类,博文。
博客实体:
/** * @var Category[]
*
* @ORM\ManyToMany(targetEntity="Category", cascade={"all"})
* @ORM\JoinTable(name="blog_categories",
* joinColumns={@ORM\JoinColumn(name="blog_id", referencedColumnName="blog_id")},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="category_id")}
*)
*/
private $categories;
/**
* @var Feed
* @ORM\OneToOne(targetEntity="Feed", mappedBy="blog", cascade={"all"})
*/
private $feed;
/**
* @var ArrayCollection $posts
* @ORM\OneToMany(targetEntity="BlogPost", mappedBy="blog")
*/
private $posts;
饲料实体:
/** * @var Blawg
*
* @ORM\ManyToOne(targetEntity="Blog")
* @ORM\JoinColumn(name="blog_id", referencedColumnName="blog_id",
* onDelete="CASCADE")
*/
private $blawg;
回答:
这似乎是一个下降的级联。
看看你的实体。您可能在关系定义中有一个cascade={"remove"}
或数据库中有一个ON DELETE
触发器。这个答案可能会帮助你太:
On delete cascade with doctrine2
回答:
由于Renan Ivo说,你可以有这些情形之一:
1)cascade={"remove"}
到外键(博客侧)将下降类别记录也 已定义为
2)在数据库级别具有ON DELETE
触发器。请看看你的SQL Schema
以上是 deleteAction:为什么要删除与此博客关联的类别? 的全部内容, 来源链接: utcz.com/qa/266534.html