JMSSerializerBundle. no hay control sobre los metadatos de terceros
Tengo dos entidades que deseo serializar con el JMSSerializerBundle. losMusic
La entidad tiene un archivo de mapeo conexclusion_policy: NONE
.
losMusic
entidad tiene un campo de la entidadUser
desdeFOSUserBundle
. losUser
entidad tiene un archivo de mapeo conexclusion_policy: ALL
con algunos campos configurados paraexpose: true
, por lo que serán serializados.
El problema es, elUser
campo se serializa completamente. No importa si cambio el archivo de mapeo de laUser
entidad.
Así es como se ve:
#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 qué no se refiere a su propio archivo de mapeo? ¿O estoy equivocado en alguna parte?
¿Qué he intentado hasta ahora?He leído la documentación de metadatos de terceros. Simplemente dice que agregue un nuevo directorio en mi servicio de serializador. Lo he hecho, pero tengo que extender elFOS\UserBundle\Entity
clase, y eso tampoco tiene acceso a los campos protegidos principales que estoy tratando de excluir.