Дублирующее определение столбца «имя пользователя» на объекте FOSUserBundle FOSRestBundle JMSSerializerBundle

Я пытаюсь использовать FOSUserBundle с FOSRestBundle и JMSSerializer.

У меня успешно работают модули RESTFul, поэтому я могу получить доступ к / api / v1 / users /, однако он возвращает все поля БД из FOSUserBundle, и я хочу иметь возможность указать, какие из них предоставлять.

Я заставил это работать над моими другими модулями, добавив @Expose к моей аннотации в соответствующих модулях Entity. Однако для объекта FOSUserBundle нет объекта, который я вижу, и при попытке создать свой собственный (приведенный ниже) он выдает это исключение:

MappingException: повторяющееся определение столбца «имя пользователя» на объекте «CYLO \ UserBundle \ Entity \ User» в поле или поле столбца дискриминатора.

Любая помощь приветствуется.

0

Решение

Необходимо предоставить определение сериализации для класса FOS \ UserBundle \ Model \ User. Например, используя файл YAML с именем Model.User.yml:

FOS\UserBundle\Model\User:
exclusion_policy: ALL
properties:
id:
expose: true
username:
expose: true
email:
expose: true

Затем настройте сериализатор jms следующим образом:

jms_serializer:
metadata:
auto_detection: false
directories:
FOSUserBundle:
namespace_prefix: FOS\UserBundle
path: "@MyOwnBundle/Resources/config/serializer"...
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]