2017-06-27 48 views
0

我有1:n關係:事件可以有很多日期。TYPO3 Extbase:過濾1:N關係

現在我想查詢事件庫,並在childrecords「日期」應用濾鏡:

「取得具有日期的所有事件,其中date.start> X」

純SQL查詢可能是這樣的:

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 

如何使用存儲庫中的extbase查詢類執行此查詢?

+0

歡迎堆棧溢出,請告訴我們你到目前爲止做了什麼,添加一些代碼和結果。請務必閱讀[如何創建最小,完整和可驗證的示例](https://stackoverflow.com/help/mcve) – lordrhodos

+0

以下是extbase查詢的參考:http://lbrmedia.net/codebase/ Eintrag/extbase查詢的方法/ – ravisachaniya

回答

3

您可以使用Extbase查詢對象獲取特定日期的事件。

我假設你在事件模型中有一個字段「日期」,用於跟蹤添加的事件。

它沒有測試它,但你的函數看起來是這樣的:

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

你可以閱讀更多有關自定義數據庫查詢與extbase查詢對象here in the typo3 docs