Исключить поля из FOSUserBundle, используя JMS Serializer, работающий в dev, но не в среде prod - PullRequest
0 голосов
/ 13 марта 2019

Я хотел бы исключить поля при представлении моего API из моего пользовательского класса, расширяющего FOSUser.

Я настроил JMS Serializer в глобальном конфигурационном файле и создал конфигурацию FOSUB для отображения только тех полей, которые мне нужны.

Global Config:

app/config/config.yml

jms_serializer:
    metadata:
        directories:
            FOSUB:
                namespace_prefix: "FOS\\UserBundle"
                path: "@AppBundle/Resources/config/serializer/fos"

Файл конфигурации FOS:

src/AppBundle/Resources/config/serializer/fos/Model.user.yml
FOS\UserBundle\Model\User:
    exclusion_policy: ALL
    properties:
        id:
            expose: true
        email:
            expose: true
        roles:
            expose: true

Этот конфиг отлично работает на моей локальной машине, но не работает при развертывании на prod. Оба используют один и тот же стек, я предполагаю, что на prod сериализатору не удается найти файл конфигурации FOS.

Любая помощь будет высоко ценится.

1 Ответ

0 голосов
/ 13 марта 2019

Проблема была как-то связана с именованием файла конфигурации.

В то время как в локальном (macos) имя файла Model.user.yml работало, в производственном (centos) оно не работало.Поэтому мне пришлось переименовать файл в Model.User.yml, тогда он отлично работал на обоих.

Я попытался найти какую-то документацию, связанную с этой проблемой, но не смог найти какую-либо.

Уберите: Убедитесь, что имя файла конфигурации представляет точно сущность, которую вы хотите переопределить.

...