У меня есть две сущности, которые я хочу сериализовать с помощью JMSSerializerBundle. Объект Music
имеет файл сопоставления с exclusion_policy: NONE
.
Сущность Music
имеет поле сущности User
из FOSUserBundle
. Сущность User
имеет файл сопоставления с exclusion_policy: ALL
с несколькими полями, установленными в expose: true
, поэтому они будут сериализованы.
Проблема в том, что поле User
полностью сериализуется. Неважно, если я изменю файл сопоставления объекта User
.
Вот как это выглядит:
#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
Почему он не ссылается на свой собственный файл сопоставления? Или я где-то ошибаюсь?
Что я пробовал до сих пор
Я прочитал стороннюю документацию по метаданным. Он просто говорит добавить новый каталог в мою службу сериализатора. Я сделал это, но мне нужно расширить класс FOS\UserBundle\Entity
, и у него также нет доступа к родительским защищенным полям, которые я пытаюсь исключить.