Puncte:0

Cum pot seta o clasă de definire a articolului pentru un câmp de configurare?

drapel us

Nu pot seta o clasă de definiție a articolului pentru un câmp de configurare.

Am incercat sa implementez hook_entity_bundle_field_info_alter() , dar nu merge.

funcția hook_entity_bundle_field_info_alter(&$câmpuri, \Drupal\Core\Entity\EntityTypeInterface $entity_type, $bundle) {
  if ($entity_type->id() === 'my_entity_type_id') {
    foreach ($câmpuri ca $câmp) {
      if ($câmp->getType() === „fișier”) {
        $field->getItemDefinition()->setClass(AnswerFileItem::class);
      }
    }
  }
}

Se pare că Drupal îl ignoră și construiește element folosind clasa de bază.

Clasa de articole din fișierul meu:

utilizați Drupal\file\Plugin\Field\FieldType\FileItem;

clasa AnswerFileItem extinde FileItem {

  /**
   * {@inheritDoc}
   */
  funcția publică getUploadLocation($date = []) {
    $date += ['my_entity_type_id' => $this->getEntity()];
    return parent::getUploadLocation($date);
  }

}

Practic, vreau să adaug date suplimentare de token la toate câmpurile de configurare pe entity_type_id dat.

Clasa de entitate nu este importantă, ar putea fi nodul.

Cred că problema este în FieldItemList deoarece folosește o clasă de elemente de câmp greșită.

Hermann Schwarz avatar
drapel cn
Ați putea furniza codul original pe care îl utilizați de fapt. Puteți depana și afla unde intră fluxul de control și unde nu. Mai ales: există vreun câmp în Entity my_entity_type_d? Este AnswerFileItem vizibil/importat?

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.