2014-03-26 34 views
0

返回JSONP結果我有控制器,擴展FosRestController。我如何從序列化中返回正常結果?如何我可以從其他的Symfony2控制器

現在

從JSONP從JSON回報

[{"id":1,"title":"\u053f\u0565\u0576\u057f\u0580\u0578\u0576"},{"id":11,"title":"\u0546\u0578\u0580\u0584-\u0544\u0561\u0580\u0561\u0577"}] 

這是我的行動回報

functionName([{},{},{},{},{},{},{},{},{},{},{},{}]); 

現在

/** 
* This function is used to get all Districts. 
* 
* @ApiDoc(
* resource=true, 
* section="District", 
* description="This function is used to get all Districts", 
* statusCodes={ 
*   200="Returned when successful", 
*   404="Returned when the Districts is empty" 
*  } 
*) 
* 
* @return mixed 
* @Rest\View(serializerGroups={"main"}) 
*/ 
public function cgetAction(Request $request) 
{ 
    // for jsonP 
    $callback = $this->get('request')->get('callback'); 

    $em = $this->getDoctrine()->getManager(); 
    $districts = $em->getRepository(self::ENTITY)->findAll(); 

    if(!is_null($request->getRequestFormat()) && !is_null($callback)) 
    { 
     $response = new JsonResponse($districts, 200, array()); 
     $response->setCallback($callback); 
     return $response; 
    } 
    else 
    { 
     return $districts; 
    } 
} 
+0

你想要完全返回什麼? – xdazz

+0

使用functionName({ 「ID」:1, 「標題」: 「\ u053f \ u0565 \ u0576 \ u057f \ u0580 \ u0578 \ u0576」},{ 「ID」:11, 「標題」:「\ u0546 \ u0578 \ u0580 \ u0584- \ u0544 \ u0561 \ u0580 \ u0561 \ u0577" }); –

回答

0

你必須構建JSON:

$response = new JsonResponse(array_map(function($obj) { 
    return array('id' => $obj->getId(), 'title' => $obj->getTitle()); 
}, $districts), 200, array()); 
+0

非常感謝:) –

相關問題