Puncte:0

înlocuiește \Drupal\file\Entity\File::load($fid) în Drupal 8.9

drapel mx

Scopul meu este să încarc un fișier și să-i obțin proprietățile.

Metoda „Load” nu mai există în Drupal 8.9 (în fișierul File.php)

\Drupal\file\Entity\File::load($fid);

Care ar fi înlocuitorul acestei funcții?

Folosesc <theme_name>preprocess_viewsCârlig <field_name> pentru a suprascrie rezultatul unei vizualizări. De aici pot să recuperez id-ul fișierului utilizând

$fid = $variabile['câmp']->getValue($variabile['rând'])[0];

Cu ID-ul fișierului, planul meu este să încărc fișierul și să recuperez toate proprietățile acestuia, cum ar fi eticheta, uri etc.

Am căutat pe web și toate recomandările sunt de folosit \Drupal\file\Entity\File::load($fid);

totuși, această metodă nu mai există Drupal 8.9

Cum aș merge pentru a încărca acest fișier și a-i obține proprietățile?

Mulțumiri!

4uk4 avatar
drapel cn
Nu s-a schimbat.load() nu a fost niciodată în File.php, ci într-una dintre clasele de bază. Toate entitățile din Drupal acceptă metoda load().
user3891775 avatar
drapel mx
Vă mulțumesc mult pentru răspuns. Mulțumesc @Clive! Folosirea „$storage” a funcționat! Am încercat să fac răspunsul corect, dar nu am suficiente puncte pentru a face acest lucru.
Puncte:3
drapel cn

Toate tipurile de entități, dintre care \Drupal\fișier\Entitate\Fișier este unul, au o statică sarcină() metodă. Aceasta vine de la EntityBase::load()și este prezent în toate versiunile Drupal 8 și 9.

Puteți continua să utilizați acea metodă, nu merge nicăieri, dar, alternativ, puteți utiliza serviciul de gestionare a tipurilor de entități, de ex.

$storage = \Drupal::entityTypeManager()->getStorage('file');
$fisier = $stocare->load($fid);

Rețineți că serviciul ar trebui să fie injectat dacă codul dvs. se află într-un context care o permite.

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.