Adds the given condition to the proper condition array.
$conditions: A reference to an array of conditions.
$field: Either a field name or a field array.
$column: The column that should hold the value to be matched, defined in the hook_field_schema() of this field. If this is omitted then all of the other parameters are ignored, except $field, and this call will just be adding a condition that says that the field has a value, rather than testing the value itself.
$value: The value to test the column value against. In most cases, this is a scalar. For more complex options, it is an array. The meaning of each element in the array is dependent on $operator.
$operator: Possible values:
The operator can be omitted, and will default to 'IN' if the value is an array, or to '=' otherwise.
$delta_group: An arbitrary identifier: conditions in the same group must have the same $delta_group. For example, let's presume a multivalue field which has two columns, 'color' and 'shape', and for entity ID 1, there are two values: red/square and blue/circle. Entity ID 1 does not have values corresponding to 'red circle', however if you pass 'red' and 'circle' as conditions, it will appear in the results -- by default queries will run against any combination of deltas. By passing the conditions with the same $delta_group it will ensure that only values attached to the same delta are matched, and entity 1 would then be excluded from the results.
$language_group: An arbitrary identifier: conditions in the same group must have the same $language_group.
EntityFieldQuery The called object.
protected function addFieldCondition(&$conditions, $field, $column = NULL, $value = NULL, $operator = NULL, $delta_group = NULL, $language_group = NULL) {
// The '!=' operator is deprecated in favour of the '<>' operator since the
// latter is ANSI SQL compatible.
if ($operator == '!=') {
$operator = '<>';
}
if (is_scalar($field)) {
$field_definition = field_info_field($field);
if (empty($field_definition)) {
throw new EntityFieldQueryException(t('Unknown field: @field_name', array(
'@field_name' => $field,
)));
}
$field = $field_definition;
}
// Ensure the same index is used for field conditions as for fields.
$index = count($this->fields);
$this->fields[$index] = $field;
if (isset($column)) {
$conditions[$index] = array(
'field' => $field,
'column' => $column,
'value' => $value,
'operator' => $operator,
'delta_group' => $delta_group,
'language_group' => $language_group,
);
}
return $this;
}