Symfony2+;AJAX:Can';无法在控制器中提取数据 问题

Symfony2+;AJAX:Can';无法在控制器中提取数据 问题,ajax,symfony,doctrine-orm,Ajax,Symfony,Doctrine Orm,我使用Symfony2和AJAX在我的“位置”表中插入一条新记录。 我可以轻松地将所需的数据从表单传递到处理该表单的控制器 AJAX请求。我与Firebug进行了检查,所有的GET值都符合我的要求。 只是要明确控制器不在位置控制器中,而是在调试控制器中,不知道这是否重要。(仅用于沙箱测试) 由于数据库中的关系,location实体有一个需要district实体对象的district列 现在的问题是,如果我省略$em->flush(),这段代码将返回succes响应。如果我添加$em->flush


我使用Symfony2和AJAX在我的“位置”表中插入一条新记录。 我可以轻松地将所需的数据从表单传递到处理该表单的控制器 AJAX请求。我与Firebug进行了检查,所有的GET值都符合我的要求。 只是要明确控制器不在位置控制器中,而是在调试控制器中,不知道这是否重要。(仅用于沙箱测试)

由于数据库中的关系,location实体有一个需要district实体对象的district列

现在的问题是,如果我省略$em->flush(),这段代码将返回succes响应。如果我添加$em->flush()来执行插入,我的浏览器控制台中会出现500个内部错误

以下是我的控制器的代码:

        $request = $this->container->get('request');
        if($request->isXmlHttpRequest()){

              $street = $request->query->get('street');
              $zip = $request->query->get('zip');
              $lat = $request->query->get('lat');
              $name = $request->query->get('name');
              $number = $request->query->get('number');

              // insert into object
              $entity  = new Location();
              $entity->setStreet($street);
              $entity->setZip($zip);
              $entity->setLat($lat);
              $entity->setName($name);
              $entity->setNumber($number);


              $em = $this->getDoctrine()->getManager();
              $district = new District();
              // get the district hard coded for testing
              $district = $em->getRepository("SnowFrontBundle:District")->find(7);
              $entity->setDistrict($district);
              //$entity->setDistrict(null);
              $em->persist($entity);
              $em->flush();
              //prepare the response, e.g.
              $response = array("code" => 100, "success" => true);
              return new Response(json_encode($response));
        }


问题:

$em->flush()部分可能有什么问题?我怎样才能知道真正的错误是什么?(而不是500内部错误)。我还应该使用createFormBuilder吗?

1。为什么不使用Symfony内置表单框架?2.如果您收到500个内部错误,那么您可能是在生产环境中工作,而不是在开发环境中工作。如果您不使用Ajax访问这些错误,而只是一篇普通的文章,那么它会给您带来什么@Crozin Ajax确实返回500内部错误,即使在开发环境中也会出错。Crozin是对的,如果您在开发环境中工作,甚至在控制台中,您都可以看到堆栈跟踪。当用户发布位置时,我还需要数据库中的纬度和经度。这就是为什么我首先使用Ajax,因为我首先从googlemapsapi获取lat和long,然后将其与其他数据一起发送到控制器。其次是“添加位置”以另一种形式弹出,因此没有新页面->ajax。控制台只是告诉我500内部服务器错误。我在Firebug的“网络”部分了解到了这一点:我真的无法从中获得一些东西……也许你在数据库中插入了错误的值?由于您不验证数据,因此只有在您尝试将数据插入数据库时,才会出现错误。