在Symfony2表单中指定日期范围

时间:2012-05-18 09:02:17

标签: forms symfony doctrine-orm date-range

在我的Symfony2应用程序中,有一个名为“约会”的实体。该实体具有名为“date”的字段/属性。它的格式如下:'2012-12-24'。

我创建了一个名为AppointmentType的表单,以便能够根据其属性搜索约会。该表单在AppointmentController中使用,并呈现给appointment.html.twig。

到目前为止一切顺利。我可以根据所有字段搜索约会。我可以搜索特定日期(即完全匹配)。

但是,我希望能够在给定日期范围(使用开始和结束日期)的情况下搜索约会。问题是:“给我这个和那个日期之间的所有约会。”我尝试过很多东西,但是在Symfony2中无法弄明白。

这里有一些随意的想法:

  • 我应该在Appointment实体旁边创建两个额外的字段 “日期”,称他们为“startdate”和“enddate”,而不是将它们链接到 MySql表但只用它们进行搜索?
  • 我应该在表单中执行某些操作,创建两个链接到实体的相同日期属性的日期字段(似乎会导致违规)?
  • 我不应该使用Symfony2表单,但是用旧方式(手动编写和处理表单)吗?这在目前是有效的,但它在Symfony2环境中远非优雅。

欢迎任何帮助。特别是一个(完整的)工作代码示例很棒,所以我可以研究它。

1 个答案:

答案 0 :(得分:0)

public function getAppointmentsByDate($startDate, $endDate)
{
   $query = $em->createQuery('SELECT a FROM Appointment a WHERE a.date BETWEEN ?1 AND ?2');
   $query->setParameter(1, $startDate);
   $query->setParameter(2, $endDate);
   return $query->getResult();
}