是否有更优化和更短的方法来获得特定条件的节点?
$query = new EntityFieldQuery;
$result = $query
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->propertyCondition('title', $title)
->fieldCondition('field_number', 'value', '1', '=');
->propertyCondition('status', 1, '=')
->execute();
// $result['node'] contains a list of nids where the title matches
if (!empty($result['node']) {
// You could use node_load_multiple() instead of entity_load() for nodes
$nodes = entity_load('node', array_keys($result['node']));
}
$query_two = new EntityFieldQuery;
$result_two = $query_two
->entityCondition('entity_type', 'node')
->propertyCondition('type', $node_type)
->propertyCondition('title', $title)
->fieldCondition('field_number', 'value', '2', '=');
->propertyCondition('status', 1, '=')
->execute();
// $result_two['node'] contains a list of nids where the title matches
if (!empty($result_two['node']) {
// You could use node_load_multiple() instead of entity_load() for nodes
$nodes_two = entity_load('node', array_keys($result_two['node']));
}
最佳答案
那么,你当然可以使用 ->fieldCondition('field_number', 'value', array(1, 2))
,但除此之外,我不知道(我写了 EntityFieldQuery
)。即使您将其重写为仅用于 SQL 存储的查询,也不会简单得多。
您不需要指定 =
作为运算符,您无需指定 IN
或者,它们是标量/数组值的默认值。
关于drupal-7 - EntityFieldQuery 多个备选条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6017317/