📜  Drupal 9 entity.repository 通过 UUID 加载实体 - PHP (1)

📅  最后修改于: 2023-12-03 15:00:32.739000             🧑  作者: Mango

Drupal 9 entity.repository 通过 UUID 加载实体 - PHP

在 Drupal9 中,entity.repository 是一个非常有用的类,它允许我们以各种方式获取或创建实体。本文将重点介绍如何使用 entity.repository 通过 UUID 加载实体。

加载实体

在 EntityRepository 类中,有一个 loadEntityByUuid() 方法,可以使用 UUID 加载实体。该方法有两个必需参数:实体类型和 UUID。

$entity = \Drupal::service('entity.repository')->loadEntityByUuid($entity_type_id, $uuid);

这里需要传入实体类型 ID 和 UUID。

示例

以下是如何在 Drupal 9 中使用 EntityRepository 类通过 UUID 加载实体的示例。

use Drupal\Core\Entity\EntityTypeManagerInterface;

public function loadMyEntity($uuid) {
  $entity_type_id = 'my_entity_type_id';
  $entity_storage = \Drupal::entityTypeManager()
    ->getStorage($entity_type_id);
  $entity = $entity_storage->loadByProperties(array(
    'uuid' => $uuid,
  ));

  if ($entity) {
    return reset($entity);
  }

  return NULL;
}

在这个示例中,我们首先通过 EntityTypeManagerInterface 获取了存储实体的实体类型。然后,我们可以使用 loadByProperties() 方法,通过 UUID 获取实体。

请注意,loadByProperties() 方法返回一个实体数组,因此您可能需要使用 reset() 方法获取第一个实体。

结论

entity.repository 类是 Drupal 9 之中非常有价值的工具,可以轻松地操作和管理实体。使用 loadEntityByUuid() 方法可以轻松地通过 UUID 加载实体。

以上就是如何通过 EntityRepository 类在 Drupal 9 中加载实体的详细指南。