我的代码中有一个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;
}
}
如何从此方法成功返回? 有任何想法吗?感谢
答案 0 :(得分:52)
将return true;
替换为return new Response();
。另外,不要忘记在顶部写上use Symfony\Component\HttpFoundation\Response;
。
答案 1 :(得分:1)
您还可以传递错误代码200和内容类型,如下所示。
返回新回复('它来自此处。',200,数组('内容类型' =>' text / html')) ;
以下是控制器的完整示例
使用Symfony \ Bundle \ FrameworkBundle \ Controller \ Controller;
使用Symfony \ Component \ HttpFoundation \ Response;
class WelcomeController扩展了控制器
{
公共职能indexAction()
{
返回新回复('它来自此处。',200,数组('内容类型' =>' text / html'));
}
}