symfony FOSUserBundle -- как удалить валидацию ненужных полей
Primary tabs
Предположим, что вы используете FOSUserBundle для регистрации пользователей в вашем проекте. И возможно, вам не нужны некоторые стандартные поля, предлагаемые пакетом. А значит, вы уже переопределили форму регистрации RegistrationType.php.
Но теперь при попытке регистрации получаем предупреждения о невалидных значениях удалённых полей.
Что мы знаем о валидации в Stymfony FOSUserBundle
Файл валидации FOSUserBundle в Symfony находится по адресу:
vendor/friendsofsymfony/user-bundle/Resources/config/validation.xml
Документация Symfony говорит нам, что можно переопределить правила валидации путём помещения файла validation.xml в директорию вашего приложения:
app/Resources/config/
Решение
Как сработало у меня:
Удалить валидацию полей невозможно, можно написать всю валидацию с нуля.
- Создаём директорию
src/AppBundle/Resourse/config/validation.xml
(у меня - validation.yml).
В директории остальных конфигураций (app/Resources/config/) , валидация не подключалась. - Создаём свою валидационную группу. Про них можно почитать в документации. Практически это выглядит, как в примере ниже, как 1) обозначение отношения конкретного метода валидации к данной группе и 2) запись в конфиге о том, что мы используем данную вализационную группу.
- Редактируем 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] // такая валидация предусмотрена по умолчанию
- Пишем свой файл валидации. Руководствуемся опять же документацией.
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]
Перечисляем поля и необходимые ограничения. К каждому конструкту добавляем groups, чтобы показать, в какой валидационной группе его использовать.
Должно работать)
- Log in to post comments
- 2664 reads