JMSSerializerBundle. Keine Kontrolle über Metadaten Dritter
Ich habe zwei Entitäten, die ich mit dem JMSSerializerBundle serialisieren möchte. DasMusic
Entity hat eine Mapping-Datei mitexclusion_policy: NONE
.
DasMusic
Entität hat ein Feld der EntitätUser
vonFOSUserBundle
. DasUser
Entität hat eine Mapping-Datei mitexclusion_policy: ALL
mit ein paar Feldern aufexpose: true
, so werden sie serialisiert.
Das Problem ist, dasUser
Feld wird vollständig serialisiert. Es ist egal, ob ich die Mapping-Datei von der ändereUser
Entität.
So sieht es aus:
#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
Warum verweist es nicht auf seine eigene Zuordnungsdatei? Oder irre ich mich irgendwo?
Was habe ich bisher versuchtIch habe die Metadatendokumentation von Drittanbietern gelesen. Es heißt einfach, ein neues Verzeichnis in meinem Serializer-Dienst hinzuzufügen. Ich habe das getan, aber ich muss das verlängernFOS\UserBundle\Entity
Klasse, und das hat auch keinen Zugriff auf die übergeordneten geschützten Felder, die ich ausschließen möchte.