Puncte:1

How to load a file entity by uuid?

drapel us

So I am trying to use the default image for users in a menu block if a custom one does not exist. And for it I am getting the image file uuid:

$default_image = $user->get('user_picture')->getSetting('default_image');

Then loading the file entity:

$file = Drupal::service('entity.repository')->loadEntityByUuid('file', $default_image['uuid']);

This is returning null. What am I doing wrong? And is there a better way to achieve this?

Puncte:2
drapel ve

Acesta ar putea fi ceea ce ai nevoie?

utilizați Drupal\field\Entity\FieldConfig;
utilizați Drupal\image\Entity\ImageStyle;

if (FieldConfig::loadByName('utilizator', 'utilizator', $imageFieldName)
  ->getSetting('imagine_default')['uuid']) {

  $imageStyle = ImageStyle::load('thumbnail');

  // Încărcați setările implicite pentru imagine.
  $imageGetSettings = FieldConfig::loadByName('utilizator', 'utilizator', $imageFieldName)
    ->getSetting('default_image');

  // Obțineți URI-ul implicit al imaginii din setări.
  $imageURI = Drupal::service('entity.repository')
    ->loadEntityByUuid('fișier', $imageGetSettings['uuid'])
    ->getFileUri();

  // Creați calea stilului imaginii.
  $imageStyleURL = $imageStyle->buildUrl($imageURI);

  // Setați $imageURL.
  $imageURL = file_url_transform_relative($imageStyleURL);
}
Jed_BH avatar
drapel us
Primesc uuid, dar bitul $imagURI returnează un nul. Versiunea de bază este 8.9.14 și încerc asta în hook_link_alter.
Prestosaurus avatar
drapel ve
Am testat cu `HOOK_link_alter()` într-un modul personalizat și văd`$imageURL` al imaginii implicite setate pe un câmp de imagine utilizator, de ex. `/admin/config/people/accounts/fields`. Puteți confirma dacă vedeți `URI` cu `kint($imageURI)`?
Jed_BH avatar
drapel us
S-a dovedit a fi altceva. Din anumite motive, chiar dacă codul a returnat un uuid, nu a fost afișat un fișier ca implicit în interfață. Am încărcat un fișier nou și a funcționat.

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.