Работа с Ajax в Symfony

543
11 апреля 2018, 07:52

Дает 302 статус, но состояние базы не меняет, а если просто перехожу по ссылке, /subscribe, то добавляет запись и удаляет.

<?php
namespace WoolfBundle\Controller;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Method;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Sensio\Bundle\FrameworkExtraBundle\Configuration\Security;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use WoolfBundle\Entity\Subscribe;
class SubscribeController extends Controller
{
/**
 * @Security("is_granted('IS_AUTHENTICATED_FULLY')")
 * @Route("/subscribe", name="subscribe")
 * @Method({"POST"})
 */
public function subscribeAction()
{
    $em = $this->getDoctrine()->getManager();
    $repository = $em->getRepository('WoolfBundle:Subscribe');
    $userEmail = $this->getUser()->getEmail();
    $subscribe = $repository->findOneByEmail($userEmail);
    if(!$subscribe){
        $subscribe = new Subscribe();
        $subscribe->setEmail($this->getUser()->getEmail());
        $em->persist($subscribe);
        $em->flush();
        return new JsonResponse(true);
    } else {
        $em->remove($subscribe);
        $em->flush();
        return new JsonResponse(false);
    }
}
}

JS файл

$(document).on('click', 'button.subscribe', function () {
that = $(this);
$.ajax({
  url:"/subscribe",
  type: "POST",
  dataType: "json",
  data: {
    "success": "You are subscribe!"
  },
  async: true,
  success: function (data)
  {
    console.log(data);
    $('div#ajax-results').html(data.success);
  }
});
return false;
});

и сам HTML код

<button class="subscribe">click me!</button>
<div id="ajax-results"></div>

READ ALSO
Не работает код (PHP)

Не работает код (PHP)

Не могу найти ошибку в кодеНужна помощь

196
Дешифратор php файлов

Дешифратор php файлов

Всем приветВирус вымогатель зашифровал много файлов

168
Почему из-за array_merge некорректно работает usort

Почему из-за array_merge некорректно работает usort

Предо мной стоит следующая задача: выводить 4 новости в блоке, отсортированные по году по возрастаниюЯ делаю это так:

222