使用JMS Serializer在开发环境中处理而不是在prod环境中,从FOSUserBundle中排除字段

问题描述 投票:0回答:1

我想从扩展FOSUser的用户类公开我的API时排除字段。

我在全局配置文件上设置了JMS Serializer,并创建了一个FOSUB配置,只显示我需要的字段。

全球配置:

app/config/config.yml

jms_serializer:
    metadata:
        directories:
            FOSUB:
                namespace_prefix: "FOS\\UserBundle"
                path: "@AppBundle/Resources/config/serializer/fos"

FOS配置文件:

src/AppBundle/Resources/config/serializer/fos/Model.user.yml
FOS\UserBundle\Model\User:
    exclusion_policy: ALL
    properties:
        id:
            expose: true
        email:
            expose: true
        roles:
            expose: true

此配置在我的本地计算机上完美运行,但在prod上部署时不起作用。两者都使用相同的堆栈,我的猜测是prod某种程度上串行器无法找到FOS配置文件。

任何帮助将非常感激。

symfony fosuserbundle jmsserializerbundle
1个回答
0
投票

该问题与配置文件的命名有某种关系。

虽然在本地(macos)文件名Model.user.yml工作,但在生产(centos)它没有用。所以我不得不将文件重命名为Model.User.yml然后它在两者上工作正常。

我试图找到一些与此问题相关的文档,但找不到任何文档。

带走:确保配置文件名完全代表您要覆盖的实体。

© www.soinside.com 2019 - 2024. All rights reserved.