Аська Мыло RSS Twitter Facebook ВКонтакте Git ЖЖ N3b/home
Задача: есть форма, одно из полей которой является обязательным (в данном примере, поле login не должно быть пустым). Необходимо по состоянию чекбокса произвольной родительской формы изменить набор правил для проверки данной сущности.
Обращаю внимание, заранее прописываем 2 группы валидаторов



Дальше - первое, что пришло в голову, добавить сеттер в Symfony\Component\Form, ибо по умолчанию он отсутствует. Установка валидаторов происходит в момент создания формы, а нам необходимо, чтобы многовложенная форма сгенерилась и отдала одно из уже забинденых значений. В нашем случае - чекбокс 'user_save'.
Итак, добавляем сеттер:



Дальше, создаем свой Event Subscriber - я так думаю, его нужно нацелить на момент до байнда формы и настройки внутренних данных. Событие FormEvents::PRE_BIND.



Ну а теперь - самое простое: привязка подписчика к менеджеру событий:



Пока что все работает, как хотелось. Ищу более красивые варианты.

UPD. есть вариант без нарушения инкапсуляции, но с повторной инициализацией формы. Подробнее тут в комментариях. Четверг, 07 Июля, 2011

Основная проблема борьбы со спамом заключается в том, что пользователи стали настолько тупыми, что их сложно отличить от спама. reply · retweet · favorite

Из ЖЖ: новый антипаттерн "Паблик Морозов". Класс-потомок выдает по запросу все данные класса-предка, независимо от степени их сокрытия. reply · retweet · favorite

Сегодня машина не только не роскошь, но еще и не средство передвижения reply · retweet · favorite

одержавшая победу партия власти нуждается в вооружённой защите от только что поддержавшего её народа. reply · retweet · favorite

Программисты - очень душевные люди. По вечерам они садятся в кресло, наливают себе чаю и смотрят, как горят сроки сдачи проектов... reply · retweet · favorite

В такую погоду хорошо сидеть в кресле у камина, неторопливо потягивая кота за яйца reply · retweet · favorite

Очередная инъекция в экономику на поверку оказалась все той же клизмой reply · retweet · favorite

Если ласточки летают хвостами вперед - на улице сильный ветер reply · retweet · favorite