Я работаю над этим интерфейсом, используя Symfony2, здесь у меня есть блоги и связанные с ними категории, иногда мы хотим удалить блоги, которые больше не действительны, поэтому я хочу удалить только блог, я добавил эту функцию в контроллер, он удаляет блог, но в то же время удаляет все связанные категории:
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;