Рейтинг:0

Не удается получить форму объекта для отображения значения поля даты

флаг cl

У меня есть объект с двумя полями даты. В коде, который сохраняет сущность, есть:

$date_requested = дата('Г-м-д', время());

и в списке значений полей, которые добавляются к сущности:

->set('field_date_requested', $date_requested)

При проверке БД таблица содержит:

расслоение | удален | идентификатор объекта | ревизия_id | код языка | дельта|field_date_requested_value
+-------+---------+------------+-------------+----- -----+------+--------------+
| мой_комплект | 0 | 4 | 4 | en | 0 | 2022-05-26       

Но когда я редактирую объект, я вижу это:

снимок экрана с отображением поля объекта

Если я вставляю дату, используя тот же формат, что и заполнитель, она находится в БД с этим форматом, но все равно не отображается. Если я ввожу дату в форму объекта вручную (что требует, чтобы она была m/d/Y), она отображается при повторном редактировании в этом формате, хотя я не вижу разницы в подполе значения в db.

Рейтинг:0
флаг cn

При сохранении даты и времени в базе данных вы должны использовать DateTimeItemInterface::DATETIME_STORAGE_FORMAT, который Y-m-d\TH:i:s. Если вы сохраните его в другом формате, Drupal не сможет правильно его обработать.

флаг cl
Изменил формат на этот. Теперь значение в базе данных равно 2022-05-26T00:00:00, но в форме объекта по-прежнему отображается пустое поле с заполнителем.
флаг cn
@JAyenGreen Изменяется ли каким-либо образом ваш код, кроме установки значения? Какое значение отправляется виджету, который не может отобразить значение?
флаг cl
Это простая строка в формате гггг-мм-дд. Он генерируется по дате (fmt, отметка времени). Поле даты Drupal — это просто MySQL varchar(20), и в базе данных оно отображается правильно. Поскольку первоначальный выбор даты пользователем осуществляется с помощью FullCalendar, а не виджета «Дата», я начинаю думать, что было бы лучше, если бы поле было простым текстом.
флаг cn
@JAyenGreen Хорошо, я ничего не знаю о FullCalendar, но если вы используете виджет даты, отличный от того, который поставляется с ядром Drupal, это должно быть частью вопроса.
флаг cl
Я нет. Календарь используется для выбора даты. Затем я беру это значение в виде строки yyyy-mm-did и сохраняю его в сущности вместе с другими значениями сущности.

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

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.