📅  最后修改于: 2023-12-03 15:00:32.739000             🧑  作者: Mango
在 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 中加载实体的详细指南。