【发布时间】:2016-12-21 21:57:24
【问题描述】:
我有一个 Drupal 8 内容实体,它与允许多个值的分类术语相关。 我想查询实体并获取仅包含我在查询中使用的术语的内容。 问题是我找不到使用多个分类术语查询我的实体并获取与之关联的内容的方法。
我的内容实体(节点包)称为“鸡尾酒”,其中包含一个名为“field_ingredients”的实体引用字段,该字段与分类词汇“成分”有关。 我想获取具有例如 2 种成分的实体,其分类 id 为:40 和 35。我尝试了以下代码但没有成功:
$query = \Drupal::entityQuery('node');
$query->condition('type', 'cocktails');
$query->condition('field_ingredients.entity.tid', 40);
$query->condition('field_ingredients.entity.tid', 35);
$node_ids = $query->execute();
$node_ids 为 0
还有这个:
$query = \Drupal::entityQuery('node');
$query->condition('type', 'cocktails');
$query->condition('field_ingredients.entity.tid', array(40, 35), 'IN');
$node_ids = $query->execute();
$node_ids 是 3,它返回具有两个分类 id 之一(或逻辑)的节点 id,
正确的答案应该是一个节点 id,即与两个分类 id 相关的节点,即两种成分的鸡尾酒
【问题讨论】: