FOSRestBundle 无法找到模板,无法 return json
FOSRestBundle Unable to find template, can't return json
我不想使用 FOSRestBundle 来 return json 来自 api 的响应,但是 FOSRestBundle 想要 return twig 而不是 json。
我的控制器方法如下所示
/**
* @Rest\Post("/producers-from-points",name="get-producers-from-points",options={"expose"=true})
* @Rest\View(serializerGroups={"list"}, statusCode=200)
*
* @return \FOS\RestBundle\View\View
* @throws \Exception
*/
public function getProducersFromPointsAction()
{
$json = parent::getJsonFromRequest();
if($json===false){
throw new \Exception("");
}
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
$poss = $em->getRepository('AppBundle:PointOfSale')->getPointOfSalesByAroundPoints($json->points);
return ['pointsOfSales'=>$poss];
}
config.yml
fos_rest:
routing_loader:
default_format: json
include_format: false
param_fetcher_listener: true
body_listener: true
format_listener: false
view:
view_response_listener: 'force'
exception:
messages:
'Exception': true
尝试将 view_reponse_listener
设置为 "false" 而不是 "force"。
看看这里可以更好地理解 view_reponse_listener
是什么:
http://symfony.com/doc/current/bundles/FOSRestBundle/3-listener-support.html
我不想使用 FOSRestBundle 来 return json 来自 api 的响应,但是 FOSRestBundle 想要 return twig 而不是 json。
我的控制器方法如下所示
/**
* @Rest\Post("/producers-from-points",name="get-producers-from-points",options={"expose"=true})
* @Rest\View(serializerGroups={"list"}, statusCode=200)
*
* @return \FOS\RestBundle\View\View
* @throws \Exception
*/
public function getProducersFromPointsAction()
{
$json = parent::getJsonFromRequest();
if($json===false){
throw new \Exception("");
}
/** @var EntityManager $em */
$em = $this->getDoctrine()->getManager();
$poss = $em->getRepository('AppBundle:PointOfSale')->getPointOfSalesByAroundPoints($json->points);
return ['pointsOfSales'=>$poss];
}
config.yml
fos_rest:
routing_loader:
default_format: json
include_format: false
param_fetcher_listener: true
body_listener: true
format_listener: false
view:
view_response_listener: 'force'
exception:
messages:
'Exception': true
尝试将 view_reponse_listener
设置为 "false" 而不是 "force"。
看看这里可以更好地理解 view_reponse_listener
是什么:
http://symfony.com/doc/current/bundles/FOSRestBundle/3-listener-support.html