我想从扩展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配置文件。
任何帮助将非常感激。
该问题与配置文件的命名有某种关系。
虽然在本地(macos)文件名Model.user.yml
工作,但在生产(centos)它没有用。所以我不得不将文件重命名为Model.User.yml
然后它在两者上工作正常。
我试图找到一些与此问题相关的文档,但找不到任何文档。
带走:确保配置文件名完全代表您要覆盖的实体。