📜  drupal 8按字段值加载节点 (1)

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

Drupal 8按字段值加载节点

在 Drupal 8 中,可以使用 EntityFieldQuery 类来按字段值加载节点。以下是使用该类进行查询的示例代码:

$query = \Drupal::entityQuery('node')
  ->condition('status', 1)
  ->condition('field_field_name', 'value');

$nids = $query->execute();

$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);

foreach ($nodes as $node) {
  // Do something with the node.
}

这是一个简单的查询示例,其中 field_field_name 是要查询的字段名,value 是要匹配的值。您可以添加任意数量的条件,以便进行更复杂的查询。例如:

$query = \Drupal::entityQuery('node')
  ->condition('status', 1)
  ->condition('field_color', 'red')
  ->condition('field_size', 'large', '<>');

$nids = $query->execute();

$nodes = \Drupal\node\Entity\Node::loadMultiple($nids);

foreach ($nodes as $node) {
  // Do something with the node.
}

这将查询状态为已发布的所有节点,其中字段 field_color 的值为 red,但是 field_size 的值不等于 large

请注意,使用 EntityFieldQuery 进行查询时,首先需要执行查询,然后使用 Node::loadMultiple()Node::load() 加载返回的节点。

希望这个简单的示例有助于您在 Drupal 8 中按字段值加载节点。