/** * Removes tag from entry. * * @Route("/remove-tag/{entry}/{tag}", requirements={"entry" = "\d+", "tag" = "\d+"}, name="remove_tag") * * @return \Symfony\Component\HttpFoundation\Response */ public function removeTagFromEntry(Request $request, Entry $entry, Tag $tag) { $entry->removeTag($tag); $em = $this->getDoctrine()->getManager(); $em->flush(); if (count($tag->getEntries()) == 0) { $em->remove($tag); } $em->flush(); $redirectUrl = $this->get('wallabag_core.helper.redirect')->to($request->headers->get('referer')); return $this->redirect($redirectUrl); }
/** * Permanently remove one tag for an entry. * * @ApiDoc( * requirements={ * {"name"="tag", "dataType"="integer", "requirement"="\w+", "description"="The tag ID"}, * {"name"="entry", "dataType"="integer", "requirement"="\w+", "description"="The entry ID"} * } * ) * * @return JsonResponse */ public function deleteEntriesTagsAction(Entry $entry, Tag $tag) { $this->validateAuthentication(); $this->validateUserAccess($entry->getUser()->getId()); $entry->removeTag($tag); $em = $this->getDoctrine()->getManager(); $em->persist($entry); $em->flush(); $json = $this->get('serializer')->serialize($entry, 'json'); return (new JsonResponse())->setJson($json); }