Điểm:0

thay thế cho \Drupal\file\Entity\File::load($fid) trong Drupal 8.9

lá cờ mx

Mục tiêu của tôi là tải một tệp và nhận các thuộc tính của nó.

Phương thức 'Tải' không còn tồn tại trong Drupal 8.9 (trong tệp File.php)

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

Điều gì sẽ thay thế cho chức năng này?

Tôi đang sử dụng <theme_name>tiền xử lý_views<field_name> móc để ghi đè đầu ra của một dạng xem. Từ đây tôi có thể truy xuất id tệp bằng cách sử dụng

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

Với id tệp, kế hoạch của tôi là tải tệp và truy xuất tất cả các thuộc tính của nó, chẳng hạn như nhãn, uri, v.v.

Đã tìm kiếm trên web và tất cả các khuyến nghị là sử dụng \Drupal\file\Entity\File::load($fid);

tuy nhiên, phương pháp này không còn tồn tại Drupal 8.9

Tôi làm cách nào để tải tệp này và nhận các thuộc tính của nó??

Cảm ơn!

4uk4 avatar
lá cờ cn
Nó không thay đổi.load() chưa bao giờ có trong File.php mà là một trong các lớp cơ sở. Tất cả các thực thể trong Drupal đều hỗ trợ phương thức load().
user3891775 avatar
lá cờ mx
Cảm ơn bạn rất nhiều vì đã phản hồi. Cảm ơn @Clive! Sử dụng '$storage' đã hoạt động! Đã thử làm câu trả lời đúng, nhưng tôi không có đủ điểm để làm như vậy.
Điểm:3
lá cờ cn

Tất cả các loại thực thể, trong đó \Drupal\file\Entity\File là một, có một tĩnh trọng tải() phương pháp. Điều này xuất phát từ EntityBase::load()và có mặt trong tất cả các phiên bản Drupal 8 và 9.

Bạn có thể tiếp tục sử dụng phương pháp đó, nó sẽ không đi đến đâu, nhưng thay vào đó, bạn có thể sử dụng dịch vụ trình quản lý loại thực thể, ví dụ:.

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

Lưu ý rằng dịch vụ sẽ được đưa vào nếu mã của bạn ở trong ngữ cảnh cho phép.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.