在我的 Symfony 專案中,我創建了表“事件”和名為start的資料時間欄位。在樹枝中,我希望過濾和顯示即將發生的事件。因此,已經過去的事件將不再可見。
目前,我使用{% if event.start > date() %}. 它可以隱藏今天前幾天發生的事件。我還想隱藏今天已經發生的事件,但當今天的事件時間過去時,它現在不起作用。
如何隱藏時間已經過去的事件?
uj5u.com熱心網友回復:
最好在存盤庫中創建一個函式并在不使用 findAll 和隱藏事件的控制器中呼叫它。
// EventRepository
public function eventsList()
{
return $this->createQueryBuilder('e')
->andWhere('e.date >= :today')
->setParameter('today', new \DateTime())
->orderBy('e.id', 'DESC')
->getQuery()
->getResult()
;
}
uj5u.com熱心網友回復:
這是解決方案:
確保該欄位是日期時間。
使用
{% if event.start > 'now' %}它將考慮(今天)和(當前)時間。
uj5u.com熱心網友回復:
這是一個更好的解決方案(我精確地為事件提供了一個地址,并且地址注冊了一個“bigcity”,這就是我使用 LocationRepository 的原因):
事件控制器.php
#[Route('/events', name: 'events')]
public function events(
Request $request,
EventRepository $eventRepository,
CategoryRepository $categoryRepository,
BigCityRepository $bigcityRepository,
LocationRepository $locationRepository
){
$category = $categoryRepository->findOneById($request->query->get('category'));
$bigcity = $bigcityRepository->findOneById($request->query->get('bigcity'));
$location = $locationRepository->findAll($request->query->get('location.bigcity'));
$events = $eventRepository->findBy(['category' => $category, 'address' => $location]);
return $this->render("front/events.html.twig", [
'events' => $events,
'category' => $category,
'bigcity' => $bigcity
]);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/517433.html
標籤:交响乐时间
