Ojs\SiteBundle\Controller\JournalController::subscribeAction PHP Метод

subscribeAction() публичный Метод

public subscribeAction ( Request $request, $slug, boolean $isJournalHosting = false ) : Response
$request Symfony\Component\HttpFoundation\Request
$slug
$isJournalHosting boolean
Результат Symfony\Component\HttpFoundation\Response
    public function subscribeAction(Request $request, $slug, $isJournalHosting = false)
    {
        $referer = $request->headers->get('referer');
        /** @var EntityManager $em */
        $em = $this->getDoctrine()->getManager();
        /** @var Journal $journal */
        $journal = $em->getRepository('OjsJournalBundle:Journal')->findOneBy(array('slug' => $slug));
        $this->throw404IfNotFound($journal);
        if ($journal->getStatus() !== JournalStatuses::STATUS_PUBLISHED || $journal->getPublisher()->getStatus() !== PublisherStatuses::STATUS_COMPLETE) {
            $journal = null;
            $this->throw404IfNotFound($journal);
        }
        $email = $request->get('mail');
        $emailConstraint = new EmailConstraint();
        $errors = $this->get('validator')->validateValue($email, $emailConstraint);
        if (count($errors) > 0 || empty($email)) {
            $this->errorFlashBag('invalid.mail');
            return $this->redirect($referer);
        }
        $subscribeMail = new SubscribeMailList();
        $subscribeMail->setMail($email);
        $subscribeMail->setJournal($journal);
        $em->persist($subscribeMail);
        $em->flush();
        $this->successFlashBag('successfully.subscribed');
        return $this->redirect($referer);
    }