Skip to content
Snippets Groups Projects

Issue #2941073: EntityQuery doesn't support OR condition for different langcodes

1 file
+ 4
3
Compare changes
  • Side-by-side
  • Inline
@@ -399,7 +399,8 @@ protected function ensureEntityTable($index_prefix, $property, $type, $langcode,
*/
protected function ensureFieldTable($index_prefix, &$field, $type, $langcode, $base_table, $entity_id_field, $field_id_field, $delta) {
$field_name = $field->getName();
if (!isset($this->fieldTables[$index_prefix . $field_name])) {
$key = $index_prefix . $field_name . $type . $langcode . $delta;
if (!isset($this->fieldTables[$key])) {
$entity_type_id = $this->sqlQuery->getMetaData('entity_type');
/** @var \Drupal\Core\Entity\Sql\DefaultTableMapping $table_mapping */
$table_mapping = $this->entityTypeManager->getStorage($entity_type_id)->getTableMapping();
@@ -407,9 +408,9 @@ protected function ensureFieldTable($index_prefix, &$field, $type, $langcode, $b
if ($field->getCardinality() != 1) {
$this->sqlQuery->addMetaData('simple_query', FALSE);
}
$this->fieldTables[$index_prefix . $field_name] = $this->addJoin($type, $table, "[%alias].[$field_id_field] = [$base_table].[$entity_id_field]", $langcode, $delta);
$this->fieldTables[$key] = $this->addJoin($type, $table, "[%alias].[$field_id_field] = [$base_table].[$entity_id_field]", $langcode, $delta);
}
return $this->fieldTables[$index_prefix . $field_name];
return $this->fieldTables[$key];
}
/**
Loading