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では、列はfield_name.valueまたはdrupal 7のfield_name.target_idによって名前フィールドで直接定義されます
—
woprrr
->fieldCondition('field_name', 'target_id', $entities_a, 'IN');