Puncte:0

Completarea valorii implicite pentru câmpul datetime în entitatea personalizată

drapel de

Încerc să setez valoarea implicită pentru câmpul de dată într-o entitate personalizată. Codul nu produce erori. Câmpul de dată pur și simplu nu se completează cu nicio valoare. Cum pot seta valoarea implicită?

introduceți descrierea imaginii aici

   $fields['date'] = BaseFieldDefinition::create('datetime')
      ->setLabel(t('Data'))
      ->setDescription(t('Data entității.'))
      ->setDefaultValue('2021-09-09')
  
      ->setDisplayOptions('view', [
        'label' => 'mai sus',
        „greutate” => -6,
      ])
      ->setDisplayOptions('form', [
        „greutate” => -6,
      ])
      ->setDisplayConfigurable('form', TRUE)
      ->setDisplayConfigurable('view', TRUE)
      ->setRequired(TRUE);

Puncte:1
drapel gb

Pentru a completa valoarea implicită pentru câmpul de dată, aveți două opțiuni:

  1. creați un DrupalDateTime și setați-l ca valoare implicită, după cum urmează:

  utilizați Drupal\Core\Datetime\DrupalDateTime;
  utilizați Drupal\datetime\Plugin\Field\FieldType\DateTimeItemInterface;

  $default_date = DrupalDateTime::createFromTimestamp(strtotime("2021-09-09"));
  $default_date = $default_date->format(DateTimeItemInterface::DATETIME_STORAGE_FORMAT);
 // setează valoarea implicită.
  ->setDefaultValue($default_date)

  1. sau în acest fel

  ->setDefaultValue([
    'default_date_type' => 'personalizat',
    'default_date' => '2021-09-09',
  ])
 

Notă : dacă doriți ca valoarea implicită să fie dinamică, aruncați o privire la acest răspuns, este mai complet Valoarea implicită pentru definirea câmpului datetime în entitatea de conținut?

drapel de
Mulțumesc, am încercat ambele sulturi. Ambele nu au schimbat nimic. Câmpul încă nu afișează nicio valoare (cache-urile șterse de mai multe ori) ca în captura de ecran de mai sus. Știam despre linkul tău notat înainte, dar nici măcar asta nu a funcționat aici. Alte idei despre ce aș putea face greșit sau cum să depanez asta?
berramou avatar
drapel gb
unde ai pus BaseFieldDefinition în *hook_entity_base_field_info_alter* sau în clasa de entitate?
drapel de
L-am pus în clasă.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.