JMSSerializerBundle. nenhum controle sobre metadados de terceiros
Eu tenho duas entidades que desejo serializar com o JMSSerializerBundle. oMusic
Entity tem um arquivo de mapeamento comexclusion_policy: NONE
.
oMusic
entidade tem um campo da entidadeUser
deFOSUserBundle
. oUser
entidade tem um arquivo de mapeamento comexclusion_policy: ALL
com alguns campos definidos paraexpose: true
, então eles serão serializados.
O problema é que oUser
campo fica totalmente serializado. Não importa se eu alterar o arquivo de mapeamento doUser
entidade.
Isto é o que parece:
#My/Bundle/Resources/config/serializer/Entity.Music.yml
xxx\xxx\Entity\Music:
exclusion_policy: NONE
#My/Bundle/Resources/config/serializer/Entity.User.yml
xxx\xxx\Entity\User:
exclusion_policy: ALL
properties:
id:
expose: true
username:
expose: true
username_canonical:
exclude: true
email:
exclude: true
email_canonical:
exclude: true
enabled:
exclude: true
salt:
exclude: true
password:
exclude: true
last_login:
exclude: true
confirmation_token:
exclude: true
password_requested_at:
exclude: true
groups:
exclude: true
locked:
exclude: true
expired:
exclude: true
expires_at:
exclude: true
roles:
expose: true
credentials_expired:
exclude: true
credentials_expired_at:
exclude: true
Por que não se refere ao seu próprio arquivo de mapeamento? Ou estou enganado em algum lugar?
O que eu tentei assim?Eu li a documentação de metadados de terceiros. Ele simplesmente diz para adicionar um novo diretório no meu serviço de serializador. Eu fiz isso, mas tenho que estender oFOS\UserBundle\Entity
classe, e que também não tem acesso aos campos protegidos pai que estou tentando excluir.