/** * Add relational filters to EFQ. * * This is for situation like when you only want articles that have taxonomies * that contain the word Drupal in their body field. This cannot be resolved * via EFQ alone. * * @param array $filter * The filter. * @param \EntityFieldQuery $query * The query to alter. */ protected function addNestedFilter(array $filter, \EntityFieldQuery $query) { $relational_filters = array(); foreach ($this->getFieldsInfoFromPublicName($filter['public_field']) as $field_info) { $relational_filters[] = new RelationalFilter($field_info['name'], $field_info['type'], $field_info['column'], $field_info['entity_type'], $field_info['bundles']); } $query->addRelationship($filter + array('relational_filters' => $relational_filters)); }