---
title: "Datenbankabfrage auf Tabelle mit sys_language_uid Feld"
url: "https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld"
source: "typo3.net"
tags: ["Extensions","Extbase","Datenbank","Frage"]
created: "2013-09-02"
last_reply: "2013-09-09"
replies: 3
solved: false
page: 1
pages: 1
lang: "de"
---

# Datenbankabfrage auf Tabelle mit sys_language_uid Feld

Extensions › Extbase · 3 Antworten · gestartet 2013-09-02

## Eröffnungsbeitrag

**Spielverderber** · 2013-09-02 · [Beitrag #1](https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld/1)

Moin Moin liebe Forenteilnehmer,

ich habe gerade eine funktion für ein Plugin geschrieben, welches eine Datenbankabfrage auf eine von mir, per extension_builder erstellte, Tabelle ausführt.
Ich möchte abhängig der gewählten Sprache auf der Webseite unterschiedliche Inhalte der Tabelle erhalten.

Diese Funktion sieht wie folgt aus:

```php
public function meineFunktionAction(){
	$xxx = trim( $this->request->getArgument('xxx') );
	$sysLanguageUid = $GLOBALS['TSFE']->sys_language_uid;
	$query = $this->xyzRepository->createQuery();
		
	$constraints[] = $query->equals('xxx', $xxx);
	$constraints[] = $query->equals('sys_language_uid', $sysLanguageUid);
		
        $query->matching($query->logicalAnd($constraints));
        $xxxResults = $query->execute();
		
		
	$this->view->assign('abc', $xxxResults);
}
```

Das funktioniert auch soweit ganz gut. Nur habe ich dazu zwei Fragen:

- Wenn ich das Plugin auf einer Seite einsetze, und für diese Seite keine Übersetzung mit der sprachid z.B. 2 angelegt habe, erhalte ich für diese Sprachid keine Ergebnisse, obwohl in der Datenbank sehr wohl Ergebnisse für z.B. sprachid 2 vorhanden wären.
- Daraus folgernd... mache ich das überhaupt richtig, wie ich sprachabhängige inhalte aus der Datenbank lade? oder gibt es da einen ganz anderen weg?

Vielen Dank schon mal im Voraus.

mfg
Spielverderber

## Antworten

### [#2](https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld/2) · einpraegsam.​net · 2013-09-03

Hmm, also Extbase macht das was du benötigst bereit automatisch. Wenn dein TYPO3 also richtig konfiguriert ist, Du kannst dir Zeile 3 und 7 sparen.

Aber auch diese Lösung benötigt eine übersetzte Seite. Ist die Seit nicht übersetzt, handelt TYPO3 völlig richtig und liefert die Datensätze der Standardsprache aus (auch dein HMENU müsste eigentlich in der Standardsprache sichtbar sein). Wenn du dies explizit nicht möchtest, musst du erst auf sys_language_uid abfragen.

BTW: Datenbankabfragen gehören eigentlich ins Repository und nicht in den Controller (schneller auffindbar, besser wiederverwendbar, weniger Code)

### [#3](https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld/3) · Spielverderber · 2013-09-04

Vielen Dank für die Erklärung.
Diese Automatismen sind Segen und Fluch zugleich.
Kann man dieses Verhalten denn abschalten?
Wenn ich zum Beispiel deutsche und englische Texte gleichzeitig auf der Webseite haben möchte?
(Der Sinn sei mal dahin gestellt - mir gehts nur darum wie man das dann machen würde)

Vielen Dank schon mal im Voraus.

### [#4](https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld/4) · 9pm · 2013-09-09

Guten Morgen!

Ich würde dir auch raten im entsprechenden Repository eine Funktion für deine Abfrage zu erstellen. Dort kannst du dann mit

```php
$query->getQuerySettings()->setRespectSysLanguage(FALSE);
```

bestimmen, dass die aktuelle Sprache nicht berücksichtig wird. Wenn ich es richtig im Kopf habe, werden dir dann alle Datensätze ausgegeben.

Wenn du doch eine bestimmte Sprache mit *sys_language_uid* abfragen willst, musst du in deinem Model dieses Feld noch hinzufügen (als Getter/Setter). Die Variable muss dann aber **$_languageUid** heißen.

Viele Grüße
9pm

---

Quelle: „Datenbankabfrage auf Tabelle mit sys_language_uid Feld“, typo3.net, https://www.typo3.net/d/115886-datenbankabfrage-auf-tabelle-mit-sys-language-uid-feld
Beiträge von Mitgliedern des Forums. Bitte mit Link auf die Diskussion zitieren.
