我想使用EntityFieldQuery对象运行查询。我需要来自node和node_access表的值,因此我需要使用INNER JOIN。从do文档中,我无法弄清楚这是怎么可能的。
这就是我所拥有的-
$query = new EntityFieldQuery();
$result = $query->entityCondition('entity_type', 'node')
->entityCondition('bundle', 'node_access')
->propertyCondition('type', 'external_link')
->propertyCondition('status', 1)
->fieldCondition('gid', '3', '=')
->fieldCondition('realm', 'domain_id', '=')
->fieldCondition('grant_view', '1', '>=')
->range(0,1)
->execute();
1
尽管它无法在Drupal 7中即时完成,但可以在Drupal 8中完成(在撰写本文时尚未发布)。有关详细信息,请参见实体字段查询获得联接支持(包括示例)。
—
科兰
在Drupal 8中,所有条件都是这样(-> condition())。D8中的EFQ的示例:$ result = \ Drupal :: entityQuery('node')-> condition('type',array('entity_a','entity_b'),'IN')-> condition('status' ,NODE_PUBLISHED)-> condition('field_myfield.value','5','=')-> execute(); 在Drupal 8 EFQ中,列是在drupal 7中的field_name.value或field_name.target_id直接在名称字段中定义的
—
woprrr
->fieldCondition('field_name', 'target_id', $entities_a, 'IN');