I want to write hook_node_form_alter() and limit taxonomy terms with only user checked terms on his profile in field_companies. I can’t pass the 1st step – load array of user checked terms from field_companies using entityfieldquery. This code does not work:
$query = new EntityFieldQuery(); $result = $query ->entityCondition('entity_type', 'user') ->entityCondition('bundle', 'user') ->fieldCondition('field_companies', 'entity_id', $user->uid) ->execute();
The error message is:
PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'field_data_field_companies0.field_companies_entity_id' in 'where clause': SELECT DISTINCT field_data_field_companies0.entity_type AS entity_type, field_data_field_companies0.entity_id AS entity_id, field_data_field_companies0.revision_id AS revision_id, field_data_field_companies0.bundle AS bundle FROM {field_data_field_companies} field_data_field_companies0 WHERE (field_data_field_companies0.field_companies_entity_id = :db_condition_placeholder_0) AND (field_data_field_companies0.deleted = :db_condition_placeholder_1) AND (field_data_field_companies0.entity_type = :db_condition_placeholder_2) ; Array ( [:db_condition_placeholder_0] => 1 [:db_condition_placeholder_1] => 0 [:db_condition_placeholder_2] => user ) in function field_sql_storage_field_storage_query() (line 632 in file modules/field/modules/field_sql_storage/field_sql_storage.module)
This query does not give terms, but only array with user[uid]=1 :
$query = new EntityFieldQuery(); $term_entities = $query ->entityCondition('entity_type', 'user') ->entityCondition('bundle', 'user') ->entityCondition('entity_id', $user->uid) ->fieldCondition('field_companies', 'tid', 0, '>=') ->execute();