从扩展FOSUser的用户类中公开API时,我想排除字段。
我已经在全局配置文件上设置了JMS序列化器,并创建了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
此配置在我的本地计算机上运行良好,但是在产品上部署时不起作用。两者都使用相同的堆栈,我的猜测是,在某种程度上,序列化程序找不到FOS配置文件。
任何帮助将不胜感激。
答案 0 :(得分:0)
问题与配置文件的命名有关。
在本地(macos)中,文件名Model.user.yml
有效,而在生产(centos)中,该文件名无效。因此,我不得不将文件重命名为Model.User.yml
,然后在两个文件上都能正常工作。
我试图找到一些与此问题相关的文档,但找不到任何文档。
要点::请确保配置文件名称准确地代表您要覆盖的实体。