JMSSerializer没有序列化实体

时间:2014-12-25 13:19:29

标签: symfony fosrestbundle jmsserializerbundle jms-serializer

我正在尝试使用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: { } }

1 个答案:

答案 0 :(得分:1)

首先,SerializerBundle配置正确吗?您应该为.yml和相应名称空间的路径提供配置,如下所示:

jms_serializer:
    metadata:
        auto_detection: true
        directories:
            ExampleCoreBundle:
                namespace_prefix: "Example\\CoreBundle"
                path: "@ExampleCoreBundle/Resources/config/serializer/"

请务必检查您的search.manager服务是否返回SearchEngine的实例。另外,我不确定组名中是否支持点。