Introduction

TYPO3 uses doctrine-dbal with restrictions on fields like deleted, hidden, starttime, endtime etc. since version 8. These restrictions are added by default to the WHERE-clause in the SQL-statement. This works fine except for LEFT JOINs, which behave like INNER JOINs.
 

What does it do?

This extensions provides the posibility to change the behavior of LEFT JOINs with restrictions simply by adding [true] as additional last parameter.

Einleitung

TYPO3 verwendet seit Version 8 Doctrine-DBAL mit Beschränkungen auf Felder wie deleted, hidden, starttime, endtime usw. Diese Beschränkungen werden standardmäßig der WHERE-Bedingung im SQL-Statement hinzugefügt. Das funktioniert gut außer für LEFT JOINs, die sich dadurch wie INNER JOINs verhalten.

Was macht die Extension?

Die Extension gibt die Möglichkeit, das Verhalten von LEFT JOINs mit Bedingungen zu korrigieren, einfach indem [true] als zusätzlicher letzter Parameter hinzugefügt wird.

Developer Manual

Default behavior

Anleitung für Entwickler

Standardverhalten

PHP

$queryBuilder->leftJoin($fromAlias, $join, $alias, $condition);

SQL

SELECT * 
FROM table1 
LEFT JOIN table2 ON table1.uid = table2.field
WHERE table1.deleted = 0 AND table2.deleted = 0;

Corrected behavior

Add [true] as additional last parameter to the method leftJoin. The restrictions are moved from the WHERE-clause into the LEFT JOIN.

Korrigiertes Verhalten

Fügen Sie [true] als zusätzlichen letzten Parameter zur Methode leftJoin hinzu. Die Beschränkungen werden von der WHERE-Bedingung zum LEFT JOIN verschoben.

PHP

$queryBuilder->leftJoin($fromAlias, $join, $alias, $condition, true);

SQL

SELECT * 
FROM table1 
LEFT JOIN table2 ON table1.uid = table2.field AND table2.deleted = 0 
WHERE table1.deleted = 0;

TYPO3 Extensions

Wir integrieren und entwickeln für Sie individuelle Erweiterungen,
die Ihren Anforderungen entsprechen.

zu den Extensions