Puncte:2

Cum pot captura configurațiile și stocarea unui câmp, astfel încât să-l șterg și apoi să-l recreez?

drapel pl

Încerc să implementez acest lucru într-un hook_update_N() dar nu sunt sigur că este potrivit (a se vedea fragmentul de mai jos). Rețineți că schimb max_length în acest proces.

Ce încerc să fac: actualizează my_custom_entity.field_my_custom_field care a salvat date în el. Deci trebuie să:

  1. Stocați acele date
  2. Stocați configurațiile câmpului - dacă acest lucru este posibil?
  3. Depozitați depozitul de câmp - dacă acest lucru este posibil?
  4. Ștergeți câmpul
  5. Creați din nou câmpul folosind configurațiile stocate și stocarea
  6. Restaurați datele salvate
  // Capturați configurațiile câmpurilor existente.
  $field = FieldConfig::loadByName($entity_type, $bundle, $field_name);
  $câmp_nou = $câmp->toArray();
  $new_field['field_type'] = 'șir';
  $new_field['settings'] = [];

  // Capturează stocarea câmpului existent.
  $new_field_storage = $field_storage->toArray();
  $new_field_storage['type'] = 'șir';
  $new_field_storage['settings'] = [
    'max_length' => $field_length,
    'is_ascii' => FALSE,
    'case_sensitive' => FALSE,
  ];

  // Ștergeți câmpul existent + stocarea câmpului și ștergeți datele.
  $field_storage->delete();
  field_purge_batch(150);

  // Creați un câmp nou utilizând configurațiile/setările capturate.
  $new_field_storage = FieldStorageConfig::create($new_field_storage);
  $new_field_storage->salvare();

  $new_field = FieldConfig::create($new_field);
  $câmp_nou->salvare();

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.