2016-03-30 18 views
2

ここは私のコントローラです。ほとんどの場合、それはうまく動作し、素晴らしいJSONオブジェクトを返します。しかし、いくつかのエンティティでは、それはちょうど下に示された行にハングアップします。私のエンティティでのデータの完成は異なりますが、特定のフィールドが見つからない場合とシリアル化が機能しない場合があります。Symfony2シリアライザが動作しない場合があります

また、私の通常のビューは完全に動作します。シリアライザ正しく動作しません。

Symfonyのシリアライザに問題があった人はいますか?

編集:がより深く見えて、私はこのためにJMSSerializerBundleを使用しているようです。

$em = $this->getDoctrine()->getManager('inertia'); 

    $entity = $em->getRepository('InertiaBundle:Accounts')->find($id); 

    if (!$entity) { 
     throw $this->createNotFoundException('Unable to find Accounts entity.'); 
    } 


    if($format == 'json') { 
     // return json array 
     $serializer = $this->get('serializer'); 
     $data = $serializer->serialize($entity, 'json'); //hangs at this line. 

     $response = new Response($data); 
     $response->headers->set('Content-Type', 'application/json'); 
     return $response; 
    } else { 
     $deleteForm = $this->createDeleteForm($id); 
     return $this->render('InertiaBundle:Accounts:show.html.twig', array(
      'entity'  => $entity, 
      'delete_form' => $deleteForm->createView(), 
     )); 
    } 
+0

エンティティ属性を公開/除外しようとしましたか? http://jmsyst.com/libs/serializer/master/cookbook/exclusion_strategies – sglessard

+0

私の質問を見てくれてありがとう。私はこれに取り組んでから1年ほど経ちました。私はシリアライザを捨てて手動でやったと思う。これは実際には私にとってはこのケースでは優れていました.Jsonレスポンスに表示されないフィールドが必要だったからです。 – chrislebaron

答えて

0

私は次の行にぶら下がっ要求と同様の問題があった。以下でそれを置き換える

$serializer = $this->get('serializer'); 

$serializer = $this->container->get('serializer'); 

を動作するように見え、私はまだ十分に知りませんなぜこれが当てはまるのかを知るSymfony2が、私よりも知識のある人が説明できるかもしれません。

関連する問題