在我的用例中,我有一个实体,该实体具有两个引用唯一词汇表的字段。
新闻:-标签(实体参考)-类别(实体参考)
如果我查询其中一个引用,则会得到结果,但是当我同时查询两个(AND过滤器)时,不会得到结果。到目前为止,我已经对其进行了三重检查,并且有些实体同时包含我要查询的标签和类别。
这是用户错误还是Drupal错误?
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'news')
;
$group = $query->andConditionGroup()
->condition('field_tag.entity.name', ['cars'], 'IN')
->condition('field_category.entity.name', ['sport'], 'IN')
;
$query->condition($group);
$nids = $query->execute();
编辑:我通过查询原始值而不是entity.value找到了解决方法。虽然这是不希望的情况
$query = \Drupal::entityQuery('node')
->condition('status', 1)
->condition('type', 'news')
;
$group = $query->andConditionGroup()
->condition('field_tag.entity.name', ['cars'], 'IN')
->condition('field_category', [1], 'IN')
;
$query->condition($group);
$nids = $query->execute();