Рейтинг:0

Заполнение значения по умолчанию для поля даты и времени в пользовательском объекте

флаг de

Я пытаюсь установить значение по умолчанию для поля даты в пользовательском объекте. Код не выдает никаких ошибок. Поле даты просто не заполняется никаким значением. Как я могу установить значение по умолчанию?

введите описание изображения здесь

   $fields['date'] = BaseFieldDefinition::create('datetime')
      ->setLabel(t('Дата'))
      ->setDescription(t('Дата сущности.'))
      ->setDefaultValue('2021-09-09')
  
      ->setDisplayOptions('вид', [
        'метка' => 'выше',
        'вес' => -6,
      ])
      ->setDisplayOptions('форма', [
        'вес' => -6,
      ])
      ->setDisplayConfigurable('форма', ИСТИНА)
      ->setDisplayConfigurable('вид', ИСТИНА)
      -> установитьТребуется(ИСТИНА);

Рейтинг:1
флаг gb

Чтобы заполнить значение по умолчанию для поля даты, у вас есть два варианта:

  1. создайте DrupalDateTime и установите его как значение по умолчанию, как показано ниже:

  используйте Drupal\Core\Datetime\DrupalDateTime;
  используйте Drupal\datetime\Plugin\Field\FieldType\DateTimeItemInterface;

  $default_date = DrupalDateTime::createFromTimestamp(strtotime("2021-09-09"));
  $default_date = $default_date->format(DateTimeItemInterface::DATETIME_STORAGE_FORMAT);
 // установить значение по умолчанию.
  ->setDefaultValue($default_date)

  1. или так

  ->setDefaultValue([
    'default_date_type' => 'пользовательский',
    'default_date' => '2021-09-09',
  ])
 

Примечание : если вы хотите, чтобы значение по умолчанию было динамическим, взгляните на этот ответ, он более полный Значение по умолчанию для определения поля даты и времени в объекте контента?

флаг de
Спасибо, я попробовал обе ваши версии. Оба ничего не меняли. В поле по-прежнему не отображается значение (кеши очищаются несколько раз), как на снимке экрана выше. Я знал о вашей отмеченной ссылке раньше, но даже это не сработало здесь. Любые другие идеи, что я могу делать неправильно или как это отладить?
berramou avatar
флаг gb
где вы поместили BaseFieldDefinition в *hook_entity_base_field_info_alter* или в класс сущности?
флаг de
Я положил его в классе.

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

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