Рейтинг:0

замена \Drupal\file\Entity\File::load($fid) в Drupal 8.9

флаг mx

Моя цель - загрузить файл и получить его свойства.

Метод «Загрузить» больше не существует в Drupal 8.9 (в файле File.php)

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

Чем заменить эту функцию?

Я использую <theme_name>preprocess_viewsХук <field_name> для переопределения вывода представления. Отсюда я могу получить идентификатор файла, используя

$fid = $variables['field']->getValue($variables['row'])[0];

С идентификатором файла мой план состоит в том, чтобы загрузить файл и получить все его свойства, такие как метка, uri и т. д.

Искал в Интернете, и все рекомендации должны использоваться \Drupal\file\Entity\File::load($fid);

однако этот метод больше не существует Drupal 8.9

Как мне загрузить этот файл и получить его свойства??

Спасибо!

4uk4 avatar
флаг cn
Он не изменился.load() никогда не был в File.php, но в одном из базовых классов. Все сущности в Drupal поддерживают метод load().
user3891775 avatar
флаг mx
Большое спасибо за ваш ответ. Спасибо @Clive! Использование «$ storage» сработало! Пытался сделать как правильный ответ, но у меня недостаточно очков, чтобы сделать это.
Рейтинг:3
флаг cn

Все типы объектов, из которых \Drupal\файл\сущность\файл один, есть статический нагрузка() метод. Это происходит от EntityBase::загрузить(), и присутствует во всех версиях Drupal 8 и 9.

Вы можете продолжать использовать этот метод, он никуда не денется, но в качестве альтернативы вы можете использовать службу диспетчера типов объектов, например.

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

Обратите внимание, что служба должна быть введена, если ваш код находится в контексте, который это позволяет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.