2

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]

Rest アクション (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: { } }

4

1 に答える 1

1

まず、SerializerBundle が正しく構成されていますか? .yml次のように、 と対応する名前空間へのパスの構成を指定する必要があります。

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

search.managerサービスが のインスタンスを返すことを必ず確認してくださいSearchEngine。また、グループ名でドットがサポートされているかどうかもわかりません。

于 2014-12-26T08:56:51.047 に答える