JmsSerializer 排除 SonataUser 的密码字段
JmsSerializer exclude password field of SonataUser
我想排除序列化对象的几个(尤其是密码)字段。
我有一个与以下对象相关的对象:Application\Sonata\UserBundle\Entity\User
当我序列化那个对象时,它给我这样的用户:
id: 1,
username: "bla",
salt: "fvasdfs9h834sgkcwsg808000w08ccwo",
password: "E7Qsfswef9zdwfNvS6TecQraLYlbsefetRy/DPbqXvyknccxisefesefCicl4IxnXgSOnBx29Tgtp9ceUs1hPg=="
如何删除密码和加盐字段?
我试图在以下位置更改配置文件:Application/Sonata/UserBundle/Resources/config/serializer/Entity.User.xml
但它似乎没有使用该配置,即使我清除了缓存...
我的第一个猜测是你的 SonataUserBundle 扩展了 FOSUserBundle,如果你检查 Sonata 的模型用户没有密码字段:https://github.com/sonata-project/SonataUserBundle/blob/master/Model/User.php密码字段在 FOSUserBundle 的模型用户中所以你的 xml 文件未被使用。
您必须设置定义自定义属性的路径:
config.yml
jms_serializer:
metadata:
directories:
FOSUserBundle:
path: "@ApplicationSonataUserBundle/Resources/config/serializer/"
namespace_prefix: "FOS\UserBundle"
我不习惯 xml 文件,所以这里是停止暴露密码的 yml。
Application/Sonata/UserBundle/Resources/config/serializer/Model.user.yml
FOS\UserBundle\Model\User:
properties:
password:
expose: false
相关问题/答案:
我想排除序列化对象的几个(尤其是密码)字段。
我有一个与以下对象相关的对象:Application\Sonata\UserBundle\Entity\User
当我序列化那个对象时,它给我这样的用户:
id: 1,
username: "bla",
salt: "fvasdfs9h834sgkcwsg808000w08ccwo",
password: "E7Qsfswef9zdwfNvS6TecQraLYlbsefetRy/DPbqXvyknccxisefesefCicl4IxnXgSOnBx29Tgtp9ceUs1hPg=="
如何删除密码和加盐字段?
我试图在以下位置更改配置文件:Application/Sonata/UserBundle/Resources/config/serializer/Entity.User.xml
但它似乎没有使用该配置,即使我清除了缓存...
我的第一个猜测是你的 SonataUserBundle 扩展了 FOSUserBundle,如果你检查 Sonata 的模型用户没有密码字段:https://github.com/sonata-project/SonataUserBundle/blob/master/Model/User.php密码字段在 FOSUserBundle 的模型用户中所以你的 xml 文件未被使用。
您必须设置定义自定义属性的路径:
config.yml
jms_serializer:
metadata:
directories:
FOSUserBundle:
path: "@ApplicationSonataUserBundle/Resources/config/serializer/"
namespace_prefix: "FOS\UserBundle"
我不习惯 xml 文件,所以这里是停止暴露密码的 yml。
Application/Sonata/UserBundle/Resources/config/serializer/Model.user.yml
FOS\UserBundle\Model\User:
properties:
password:
expose: false
相关问题/答案: