entityCondition('entity_type', $field['settings']['target_type']); // Additionally we have to figure out which column in the entity table // represents entity label. $entity_info = entity_get_info($field['settings']['target_type']); if (!isset($entity_info['entity keys']['label'])) { // We can't get any matches if we do not know what column to query // against. So we add a condition to $query which will 100% yield empty // results. self::emptyResultsCondition($query); return; } $efq->propertyCondition($entity_info['entity keys']['label'], '%' . $tag . '%', 'LIKE'); $result = $efq->execute(); if (!isset($result[$field['settings']['target_type']]) || !is_array($result[$field['settings']['target_type']])) { self::emptyResultsCondition($query); return; } $result = $result[$field['settings']['target_type']]; $query->fieldCondition($field, 'target_id', array_keys($result)); } public static function mergeEntityAsSynonym($items, $field, $instance, $synonym_entity, $synonym_entity_type) { // Firstly validating that this entity reference is able to reference to // that type of entity. $expected_synonym_entity_type = $field['settings']['target_type']; if ($expected_synonym_entity_type != $synonym_entity_type) { return array(); } $synonym_entity_id = entity_id($synonym_entity_type, $synonym_entity); return array(array( 'target_id' => $synonym_entity_id, )); } }