public function cancelAction($id)
{
$em = $this->getDoctrine()->getManager();
/** @var Article $article */
$article = $em->getRepository('OjsJournalBundle:Article')->findOneBy(array('submitterUser' => $this->getUser(), 'id' => $id, 'status' => ArticleStatuses::STATUS_NOT_SUBMITTED));
$this->throw404IfNotFound($article);
//remove article 's article files relational items
foreach ($article->getArticleFiles() as $file) {
$article->removeArticleFile($file);
$file->setArticle(null);
$em->persist($file);
$em->remove($file);
}
//remove article 's article authors relational items
foreach ($article->getArticleAuthors() as $articleAuthor) {
$article->removeArticleAuthor($articleAuthor);
$articleAuthor->setArticle(null);
$em->persist($articleAuthor);
$em->remove($articleAuthor);
}
//remove article 's article submission files relational items
foreach ($article->getArticleSubmissionFiles() as $submissionFile) {
$article->removeArticleSubmissionFile($submissionFile);
}
//remove article 's article citations relational items
foreach ($article->getCitations() as $citation) {
$article->removeCitation($citation);
$citation->removeArticle($article);
$em->persist($citation);
$em->remove($citation);
}
//remove article 's article attributes relational items
foreach ($article->getAttributes() as $attribute) {
$article->removeAttribute($attribute);
}
$em->remove($article);
$em->flush();
$this->successFlashBag('successful.remove');
return $this->redirectToRoute('ojs_user_index');
}