2017-06-27 3 views
0

Ich habe eine 1: n-Beziehung: Ein Ereignis kann viele Daten haben.TYPO3 Extbase: Filtern einer 1: N-Beziehung

Nun möchte Ich mag das Event Repository abzufragen und einen Filter auf den childrecords „Termine“ gelten:

„alle Events, die Tage, wo date.start> x haben“

Die reinen SQL-Abfrage könnte in etwa so aussehen:

SELECT tx_event_domain_model_event.*,tx_event_domain_model_date.* 
FROM tx_event_domain_model_event, tx_event_domain_model_date 
WHERE tx_event_domain_model_date.event = tx_event_domain_model_event.uid 
AND tx_event_domain_model_date.start > 1497960246 

Wie kann ich diese Abfrage mit der Abfrageklasse extbase in einem Repository durchführen?

+0

Willkommen Überlauf Stack, bitte Zeigen Sie uns, was Sie bisher gemacht haben, fügen Sie einen Code und die Ergebnisse hinzu. Lesen Sie unbedingt [So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (https://stackoverflow.com/help/mcve) – lordrhodos

+0

Hier ist die Referenz für die Extbase-Abfrage: http://lbrmedia.net/codebase/ Eintrag/extbase-abfrage-methoden / – ravisachaniya

Antwort

3

Sie können das Extbase-Abfrageobjekt verwenden, um nur die Ereignisse mit bestimmten Datumsangaben abzurufen.

Ich nehme an, Sie haben ein Feld "Datum" in Ihrem Ereignismodell, das die hinzugefügten Ereignisse verfolgt.

Es es nicht getestet haben, aber Ihre Funktion würde wie folgt aussehen:

// assuming your repository is "eventRepository" 
$startDate = 1497960246; 
$query = $this->eventRepository->createQuery(); 
$query->matching($query->greaterThan('date.start', $startDate)); 
$events = $query->execute(); 

Sie können mehr über benutzerdefinierte Datenbankabfragen mit dem extbase Abfrageobjekt lesen here in the typo3 docs

Verwandte Themen