13

我的代码中有一个 ajax 调用。我想通过通话实现的效果很好。我想从数据库中删除一些记录,这些记录在通过 ajax 调用该方法时实际上被删除,但是在 symfony 方法中它必须返回一个响应,这就是为什么在执行该方法时它给了我错误

我的 Ajax 调用是

  $.ajax({
        type: "POST",
        data: data,
        url:"{{ path('v2_pm_patents_trashpatents') }}",
        cache: false,
        success: function(){
        document.location.reload(true);
        }
    });

执行的方法是

 public function trashpatentAction(Request $request){
    if ($request->isXmlHttpRequest()) {
        $id = $request->get("pid");
        $em = $this->getDoctrine()->getEntityManager();
        $patent_group = $em->getRepository('MunichInnovationGroupPatentBundle:PmPatentgroups')->find($id);
        if($patent_group){
            $patentgroup_id = $patent_group->getId();
            $em = $this->getDoctrine()->getEntityManager();
            $patents = $em->getRepository('MunichInnovationGroupPatentBundle:SvPatents')
            ->findBy(array('patentgroup' => $patentgroup_id));
            if($patents){
                foreach($patents as $patent){
                    if($patent->getIs_deleted()==false){
                        $patent->setIs_deleted(true);
                        $em->flush();
                    }
                }
            }
            $patent_group->setIs_deleted(true);
            $em->flush();
        }
        else{
            $em = $this->getDoctrine()->getEntityManager();
            $patent = $em->getRepository('MunichInnovationGroupPatentBundle:SvPatents')->find($id);
            if ($patent) {
                $patent->setIs_deleted(1);
                $em->flush();
            }
        }
        return true;
    }
}

我怎样才能从这种方法成功返回?有任何想法吗?谢谢

4

2 回答 2

56

替换return true;return new Response();。也不要忘记use Symfony\Component\HttpFoundation\Response;在顶部写。

于 2012-06-25T14:30:58.927 回答
3

您还可以传递错误代码200和内容类型,如下所示。

return new Response('Its coming from here .', 200, array('Content-Type' => 'text/html'));

这是控制器的完整示例

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class WelcomeController extends Controller
{
    public function indexAction()
    {
        return new Response('Its coming from here .', 200, array('Content-Type' => 'text/html'));
    }
}
于 2018-06-12T03:12:12.560 回答