#symfony #symfony-forms
#симфония #symfony-forms
Вопрос:
У меня есть простая форма
->add('createDateTime', HiddenType::class)
Вызывает ошибку:
Объект класса DateTime не удалось преобразовать в строку
Как мне обойти эту проблему? Я не хочу изменять сущность, чтобы возвращать дату в формате строки…
Есть идеи?
Ответ №1:
Поскольку для формы inputs
требуется текстовое представление данных, вам нужно преобразовать значение в строку с помощью a DataTransformer
. К счастью, Symfony поставляется с преобразователем для DateTime
объектов, вам просто нужно добавить его в поле формы:
$builder
->add('field') //...
->add('createDateTime', HiddenType::class);
$builder
->get('createDateTime')
->addModelTransformer(new DateTimeToStringTransformer());
При необходимости вы можете указать разные часовые пояса для преобразования или форматирования.