【问题标题】:How to hide events that happened today and have passed ? Symfony如何隐藏今天发生和已经过去的事件? Symfony
【发布时间】:2022-10-13 19:25:37
【问题描述】:

在我的 Symfony 项目中,我创建了表“事件”和日期时间场地。在树枝中,我希望过滤和显示即将发生的事件。因此,已经过去的事件将不再可见。

目前,我使用了{% if event.date > date() %}。隐藏前几天发生的事件非常有效。我还希望隐藏今天发生的事件以及时间已经过去。

我该怎么做 ?

【问题讨论】:

  • 如果您想同时使用日期和时间,为什么不使用日期时间字段呢?此外,最好在后端过滤而不是在树枝中过滤。很多事件比如 100,000 个,性能会很差

标签: symfony time


【解决方案1】:

最好在存储库中创建一个函数并在不使用 findAll 和隐藏事件的控制器中调用它。

// EventRepository
public function eventsList()
{
    return $this->createQueryBuilder('e')
        ->andWhere('e.date >= :today')
        ->setParameter('today', new DateTime())
        ->orderBy('e.id', 'DESC')
        ->getQuery()
        ->getResult()
    ;
}

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 2012-06-30
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2016-11-30
    • 2017-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多