что я там смогу сделать? может, какой-то лисенер можно поставить?
Можно в листенер, но зачем вы себе пытаетесь усожнить жизнь?
а как можно проще?
В чем вообще профит пытаться провалидировать true false 0, 1
много вопросов возникает если честно, в данном ключе на край уже свой констрейт написать можно
если бы только 0,1 оно же жрёт все. любая строка принимается и конвертируется в boolean
Похоже это не поможет, данные сначала мапятся, а потом валидируются. Чему я удивлен... если сделать dto типизированную и подсунуть не те данные - код упадет еще до валидации (я про другие type)
Андрей выше скинул ссылку на трансформер, наверное это будет наиболее красивое решение. - или написать свой type копию CheckBox и в нем прописать трансформер свой, в нем исключить лишние string - или по месту заменить трансформер.
Увы, копия CheckBox тут не поможет, потому что валидация данных происходит позже, когда уже данные раскиданы по полям энтити
Давай сначала. Ты хочешь просто запретить указывать 0/1 из вредности, или это действительно приносит какую-то проблему?
из вредности. не люблю я, когда в поля типа булеан пихают, что попало, и система это проглатывает
я же говорю, что если бы только 0/1. так проходит вообще всё хоть "0", хоть "ноль"
вроде бы такая элементарная вещь, но нет готового решения
symfony/form заточены на использование вместе с html form, поэтому там это by design
да. это так. и это беда :-/
Пробовал этот вариант? ChoiceType + choice_value https://stackoverflow.com/a/49915729 + https://symfony.com/doc/current/reference/forms/types/choice.html#choice-value UPD + constraint Type(boolean)
пробовал. но как я уже сказал, когда дело доходит до валидации, в поле "user->isActive уже содержится true или false. поэтому и валидимровать уже нечего
точно. Ок, есть кривой но железный вариант - event subscriber Мог напутать с norm data / view data https://gist.github.com/andrew-demb/3225ef067c7805567c5106567763679f
да, в прошлом проекте на 4.2 таким баловались. работает, конечно, но костыль костылём Я думал, что в 5.3 что-то сдвинулось с места в этом направлении. Ошибся, видимо
формы это боль. Было и будет
adhoc_strict_bool.php название говорит само за себя
да, увы и ах. Ещё вперемежку с типами данных PHP адский ад
Дело не в валидации валидатора. Если обрубить в трансформере - все ок, я проверял.
онечно боль, ведь она компанент не для этого
а как это сделать? как обрубить?
Обсуждают сегодня