#php #symfony
Вопрос:
Я новичок в symfony и хотел бы создать пользовательский элемент управления datetime, и в настоящее время я борюсь с шаблоном twig, поскольку элемент управления datetime, по-видимому, является составной частью элемента управления датой и временем, и все мои попытки создать новый терпят неудачу.
Элемент управления должен выглядеть следующим образом:
Отдельный индикатор даты и отдельный выбор времени, который показывает выпадающий список времени в соответствии с настройкой шага (не отдельный выпадающий список для часа и минуты).
Я попытался создать абстрактный тип, но не смог правильно отобразить в него данные.
Как лучше всего создать этот элемент управления, не влияя на обычную визуализацию типа времени (должна быть отдельной) и не влияя на тип данных и тип времени?
Ответ №1:
Во-первых, если новый формат данных для этого поля не требуется, как я понимаю, вам не следует создавать новый класс типа формы. Используйте стандартный тип даты и времени и переопределите шаблон ветки для этой поданной формы.
Шаблон поля формы можно переопределить, создав глобальный собственный шаблон «form.html.twig» или для отдельной формы, создав шаблон для данного поля в шаблоне формы, как описано в разделе Как работать с темами форм. Если вам нужен новый элемент управления только в некоторых случаях и вы хотите использовать обычный шаблон в целом, создайте новый «form.html.twig» с пользовательским шаблоном и используйте объявление:
{% form_theme form 'form.html.twig' %}
поверх шаблона веточки, где отображается форма.
Как вы заметили, DateTimeType является составным из типа данных и типа времени, и если вы хотите использовать отдельные входные данные для обоих типов, вы можете переопределить блоки шаблонов для типа данных и для типа времени отдельно. Если вам нужен один ввод для обоих, переопределите блок шаблона типа даты и времени.
Комментарии:
1. Спасибо за объяснение, но где мне найти шаблон веточки, содержащий <тип ввода=»дата»… или