📅  最后修改于: 2023-12-03 15:00:32.737000             🧑  作者: Mango
在 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 中按字段值加载节点。