環境 PHP5.6、Symfony3、MySQL、CentOS6、JMSSerializer1.1
JMSSerializerで取得したデータをシリアライズして、APIで取得しようとしているのですが、シリアライズで失敗しているように見えて500エラーとなります。
Entity、 RepoitoryはDoctrine\ORMを使っています。
@manytooneなどを使用しているEntityでうまくいっていないところまではわかっているのですが、Exceptionにも引っかかってくれていないので苦戦しております。
シンプルなEntityではうまくいっております。
PHP
1/** 2 * @Route("/announce", name="announce") 3 * @Method("GET") 4 * @param $request 5 * @return Response response 6 */ 7 public function announceAction(Request $request) { 8 $em = $this->getDoctrine()->getManager(); 9 $logger = $this->get('logger'); 10 $data =$em->getRepository('AppBundle:Announce')->getAnnounceByUserId($userToken->getId()); 11 return new Response($this->serialize($data), Response::HTTP_OK); 12 } 13 14/** 15 * Data serializing via JMS serializer. 16 * 17 * @param mixed $data 18 * 19 * @return string JSON string 20 */ 21 public function serialize($data) 22 { 23 $context = new SerializationContext(); 24 $context->setSerializeNull(true); 25 $logger = $this->get("logger"); 26 try { 27 return $this->get('jms_serializer') 28 ->serialize($data, 'json', $context); 29 } catch (UnsupportedFormatException $exception) { 30 31 $logger->error($exception); 32 return ""; 33 } 34 }
あなたの回答
tips
プレビュー