1

問題


「場所」テーブルに新しいレコードを挿入するために、AJAX で Symfony2 を使用しています。フォームから必要なデータを、その AJAX 要求を処理するコントローラーに簡単に渡すことができます。Firebug で確認したところ、すべての GET 値は希望どおりです。明確にするために、コントローラーはロケーションコントローラーではなくデバッグコントローラーにあり、それが重要かどうかはわかりません。(サンドボックス テスト atm のみ)。

データベース内のリレーションシップのため、場所エンティティには、地区エンティティ オブジェクトを必要とする地区列があります。

問題は、$em->flush() を省略した場合、このコードが正常に成功応答を返していることです。挿入を実行するために $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 を使用する必要がありますか?

4

0 に答える 0