symfony FOSUserBundle -- как удалить валидацию ненужных полей

Предположим, что вы используете FOSUserBundle для регистрации пользователей в вашем проекте. И возможно, вам не нужны некоторые стандартные поля, предлагаемые пакетом. А значит, вы уже переопределили форму регистрации RegistrationType.php.

Но теперь при попытке регистрации получаем предупреждения о невалидных значениях удалённых полей.

Что мы знаем о валидации в Stymfony FOSUserBundle

Файл валидации FOSUserBundle в Symfony находится по адресу:

vendor/friendsofsymfony/user-bundle/Resources/config/validation.xml

Документация Symfony говорит нам, что можно переопределить правила валидации путём помещения файла validation.xml в директорию вашего приложения:

app/Resources/config/

Решение

Как сработало у меня:
Удалить валидацию полей невозможно, можно написать всю валидацию с нуля.

  1. Создаём директорию
    src/AppBundle/Resourse/config/validation.xml

    (у меня - validation.yml).
    В директории остальных конфигураций (app/Resources/config/) , валидация не подключалась.

  2. Создаём свою валидационную группу. Про них можно почитать в документации. Практически это выглядит, как в примере ниже, как 1) обозначение отношения конкретного метода валидации к данной группе и 2) запись в конфиге о том, что мы используем данную вализационную группу.
  3. Редактируем config.yml. нам необходимо показать Symfony, что мы хотим, чтобы он валидировал форму регистрации FOSUserBundl-а с помощью валидационной группы app_registration(это ваше название):
    fos_user:
       registration:
            form:
                type: AppBundle\Form\RegistrationType
                name: app_user_registration
                validation_groups:  [app_registration] // это моя валидация
    #            validation_groups:  [Registration, Default] // такая валидация предусмотрена по умолчанию 
  4. Пишем свой файл валидации. Руководствуемся опять же документацией.
    AppBundle\Entity\User:
        properties:
            username:
                - NotBlank:  
                    groups: [app_registration]
            mobileNumber:
                - Length: 
                    min : 12
                    max : 12
                    minMessage : 'Введите номер в формате +79991234567'
                    maxMessage : 'Введите номер в формате +79991234567'
                    groups: [app_registration]
                - NotBlank: 
                    groups: [app_registration]
            address:
                - NotBlank:
                    groups: [app_registration]
  5. Перечисляем поля и необходимые ограничения. К каждому конструкту добавляем groups, чтобы показать, в какой валидационной группе его использовать.

    Должно работать)