четверг, 23 ноября 2017 г.

Пустое поле не отправляется в Symfony

Эта проблема зависит от внутреннего устройства Symfony. Иногда Вам нужно отправить какое-нибудь поле с пустым значением, но фреймворк упорно вам твердит, что это поле должно быть заполнено, не смотря на то, что вы поставили required => false и nullable: true в настройках doctrine.
Решение достаточно простое. Есть такой параметр у поля формы, как empty_data в него вместо пустой строки, которая и так равна null и ничего толком не изменит можно передать объект, который внутри Symfony никак не может быть равен нулю, а у этого объекта методом _toString уже можно вернуть пустую строку.

Листинг
class EmptyString {
    public function __toString() 
    {
        return '';
    }
}
 
Далее форма конфигурируется следующим образом

$builder->add('recap', 'text', ['empty_data' => new EmptyString(),]);
 
Ответ я нашел на стеке вот здесь: http://stackoverflow.com/questions/9928702/symfony...

Но перед тем как использовать этот вариант обязательно проверьте ваш validation.yml

Комментариев нет:

Отправить комментарий

Рабочий способо убрать хрип микрофона в Ubuntu 18.04

Переходим по ссылке и делаем также как в видео https://www.reddit.com/r/Ubuntu/comments/6zq3ca/remove_background_noise_on_the_mic_in_ubun...