TYPO3 Extbase:过滤 1:N 关系
TYPO3 Extbase: Filtering a 1:N relation
我有一个 1:n 关系:一个事件可以有多个日期。
现在我想查询事件存储库并对子记录应用过滤器 "dates":
"Get all events which have dates where 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 查询 class 执行此查询?
您可以使用 Extbase 查询对象来获取特定日期的事件。
我假设您的事件模型中有一个字段 'date',用于跟踪添加的事件。
它还没有测试过,但你的函数看起来像这样:
// 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
我有一个 1:n 关系:一个事件可以有多个日期。
现在我想查询事件存储库并对子记录应用过滤器 "dates":
"Get all events which have dates where 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 查询 class 执行此查询?
您可以使用 Extbase 查询对象来获取特定日期的事件。
我假设您的事件模型中有一个字段 'date',用于跟踪添加的事件。
它还没有测试过,但你的函数看起来像这样:
// 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