Puncte:0

Proprietățile tip câmp personalizat populate cu datele preluate

drapel kr

Am un tip de câmp personalizat, persoana_org, cu o completare automată configurată pentru a căuta punctul nostru final de „oameni”. Salvează ceva de genul John Smith (12345) la proprietatea valorii ($properties['valoare']).

Punctul final arată cam așa:

[{id, nume, titlu, ...}, {id, nume, titlu, ...},...]

Scopul meu este, la salvarea entității (și cron), să îmi interoghez punctul final și să salvez cele peste 30 de proprietăți în baza de date.

Trebuie să pot filtra și sorta aceste valori în vizualizări, motiv pentru care calcularea acestor date în timp real nu este inclusă în tabel.

După cum am înțeles, trebuie să setez clasa proprietății pe care să o folosesc pentru generarea valorii proprietății. Ceva asemănător cu:

    $properties['name'] = DataDefinition::create('any')
      ->setLabel(nou TranslatableMarkup('Nume'))
      ->setComputed(TRUE)
      ->setReadOnly(TRUE)
      ->setClass('\Drupal\my_module\TypedDataName');

Apoi în mine TypedDataName Clasa, primesc valoarea ca:

  funcția publică getValue() {
    if ($this->processed !== NULL) {
      returnează $this->processed;
    }

    $valori = $this->getParent()->getValue();
    $submitted_value = $valori['valoare'];

    $id = EntityAutocomplete::extractEntityIdFromAutocompleteInput($submitted_value);

    // Rulează fetch aici pentru a obține proprietatea „nume”.
    $răspuns = $this->_fetchName($id);
    $valoare = $răspuns[0]["nume"];

    $this->processed = $valoare;

    returnează $this->processed;
  }

Acest lucru funcționează, deși pare că rulează pe afișaj în loc să fie extras din baza de date.

De asemenea, dacă am adăugat o altă proprietate, cum ar fi titlu (sau restul dintre ei), va rula această preluare fiecare proprietate.

Cum se poate face acest lucru cu o singură preluare pentru a popula cele peste 30 de proprietăți la salvare?

drapel in
Te-ai uitat la modulul Feeds?

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.