2016-05-28 6 views
-1

Моя проблема в том, что метод не возвращает истинный результат. Я хочу проверить, существует ли электронная почта ввода в моей сущности или нет.Сделайте запрос Ajax в Symfony2

Вот контроллер:

public function verificationAction(Request $request) 
{ 
    if ($this->container->get('request')->isXmlHttpRequest()) { 
     $email=$request->request->get('email'); 

     $em=$this->getDoctrine()->getEntityManager(); 
     $resp= $em->getRepository("CMSiteBundle:Prospect")->findBy(array('email'=>$email)); 
     $response =new Response(json_encode($resp)); 
     $response->headers->set('Content-Type', 'application/json'); 
     return $response; 
    } 
} 

ответ

0

Вы можете попробовать старый-трик. Поскольку в действиях Symfony Controller, Вы должны вернуть ответ, почему не поддельные DEAD РЕАКЦИЯ так:

<?php 

     class ABCController { 

      public function verificationAction(Request $request) { 
       if ($this->container->get('request')->isXmlHttpRequest()) { 
        $email = $request->request->get('email'); 

        $em  = $this->getDoctrine()->getEntityManager(); 
        $resp  = $em->getRepository("CMSiteBundle:Prospect") 
            ->findBy(array('email' => $email)); 
        //$response = new Response(json_encode($resp)); 
        //$response->headers->set('Content-Type', 'application/json'); 
        // THE TRICK IS THAT DIE RUNS FIRST 
        // THUS SENDS YOUR RESPONSE YOU THEREBY 
        // STOPPING THE RETURN FROM FIRING... ;-) 
        return die(json_encode($resp)); 
       } 
      } 
     } 

Возможно, это очень старый трюк все еще работает для вас ... ;-)

Смежные вопросы