Es gibt ein merkwürdiges Verhalten, wenn man in Views Inhaltstypen nach Sprache filtern möchte.
Intuitiv würde man den Sprachfilter auf den Inhalt setzen. Dies zeigt nur in der Standardsprache eine Ausgabe.
Das SQL der Abfrage zeigt den Unterschied schon in der ersten Zeile:
für die Standardsprache (hier Deutsch) sieht die Zeile so aus:
SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid ...
für Englisch:
SELECT node_field_data.langcode AS node_field_data_langcode, node_field_data.created AS node_field_data_created, node_field_data.nid AS nid ...
Das Feld node_field_data.langcode gibt es in der Abfrage nicht, weswegen die Abfrage scheitert und kein Ergebnis zurück liefert.
(Der Rest der Abfrage ist für beide Sprachen abgesehen von den unterschiedlichen Sprachwerten indentisch)
Anders verhält es sich, wenn man den Sprachfilter auf Inhalts Revision setzt.
Hier lautet die Abfrage in beiden Sprachen:
SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid ...
Für beide Sprachen wird das gewünschte Ergebnis zurückgeliefert.
Ist das ein Bug im Drupal Core oder habe ich etwas falsch verstanden? Kommentare willkommen.
Nachtrag:
Bei weiteren Tests habe ich herausgefunden, dass dieses Verhalten nur dann auftritt, wenn der View noch einen zusätzlichen Filter z.B. auf ein List-Feld oder ein Taxonomie-Feld hat und dieses Feld nicht übersetzbar ist. Es liegt also eher an dem INNER JOIN
SELECT node_field_data.created AS node_field_data_created, node_field_data.nid AS nid FROM {node_field_data} node_field_data INNER JOIN {node__field_list_test} node__field_list_test ON node_field_data.nid = node__field_list_test.entity_id AND (node__field_list_test.deleted = '0' AND node__field_list_test.langcode = node_field_data.langcode) WHERE ((node__field_list_test.field_list_test_value IN('eins', 'zwei'))) AND ((node_field_data.status = '1') AND (node_field_data.type IN ('test_filter_version')) AND (node_field_data.langcode IN ('en'))) ORDER BY node_field_data_created DESC
Nachtrag 2:
Nachdem ich herausgefunden habe, worum es genau geht, konnte ich gezielt in den Drupal 8 Issues suchen.
https://www.drupal.org/node/2451657
Es gibt dort auch einen Patch, der funktioniert.
Neuen Kommentar hinzufügen