我正在尝试使用JmsSerializerBUndle和FOSRestBundle获取序列化实体响应。不幸的是,由于我遇到了问题,我无法这样做
响应..我不确定系统是否识别文件Entity.SearchEngine.yml
任何想法我怎么能找到它不起作用的原因?
#src\example\CoreBundle\Resources\config\serializer\Entity.SearchEngine.yml
Example\CoreBundle\Entity\SearchEngine:
exclusion_policy: ALL
properties:
id:
expose: true
groups: [search.list,search.details]
has_product_flight:
expose: true
groups: [search.details]
selfLink:
expose: true
groups: [self.link]
休息动作(使用FOSRestBundle):
/**
* GET /search/engines
*
* @return array
* @Rest\View(serializerGroups={"search.details", "self.link"})
*/
public function getSearchEnginesAction()
{
$searchEngineManager = $this->get('search_manager');
return $searchEngineManager->getSearchEngineList();
}
我得到的回应是
{
0: { }
}
答案 0 :(得分:1)
首先,SerializerBundle配置正确吗?您应该为.yml
和相应名称空间的路径提供配置,如下所示:
jms_serializer:
metadata:
auto_detection: true
directories:
ExampleCoreBundle:
namespace_prefix: "Example\\CoreBundle"
path: "@ExampleCoreBundle/Resources/config/serializer/"
请务必检查您的search.manager
服务是否返回SearchEngine
的实例。另外,我不确定组名中是否支持点。