DateType 字段 - 只能在今天后 select 天
DateType field - only possible to select days after today
我有一个可以下订单的表格select(除其他外):
- 日期外卖
- 小时外卖
看起来像这样:
我的表单中包含以下部分的代码是这样的:
$form = $this->createFormBuilder($order)
->add('dateTakeout', DateType::class, array('label' => "Kies uw datum voor afhaling *", 'required' => true))
->add('hourTakeout', TimeType::class, array('label' => "Kies het gewenste uur van afhalen *", 'required' => true));
但现在我希望你只能在后天select + 只能在下午 3 点到午夜 .
但我不知道如何在表格中预见这一点。有人可以帮我吗?
更新:
我想限制下拉菜单中的选项数量。所以他们不能选择像 2016 年 6 月 21 日这样的日子或像下午 1 点这样的时间。
您可以通过多种方式执行此操作:
您可以获得当前日期,然后像上面一样在您的控制器中查看日期是否在未来(假设是 7 月 1 日)。然后创建一个 Flashbag 消息并重定向到一个 Flash twig 模板。
对于小时数,您也可以执行相同的操作,检查小时数(加上分钟数)是否在您指定的时间范围内,如果不在,则创建 Flash 错误消息并重定向到 twig。
另一种选择(更难 - 可能需要更多代码)是基于作为日期时间对象的实体创建表单 class。理想情况下只有一个包含日期和时间的实体。我无法就此向您提出建议,但我没有尝试过;但我知道这应该是可能的。
Forms Classes are explained in this link.
我希望这能回答问题?
编辑#2。
第二次检查您的问题后,我发现您可以使用 TimeType::class 字段来做到这一点:
->add('hourTakeout', TimeType::class, array(
'label' => "Kies het gewenste uur van afhalen *",
'required' => true,
'widget' => 'choice',
'hours' => range(15,23),
));
这限制了您从下午 3 点到晚上 11 点的可选时间(我使用范围函数输入了 24 小时格式。这只是针对小时的修复。
希望这是有道理的。
我有一个可以下订单的表格select(除其他外):
- 日期外卖
- 小时外卖
看起来像这样:
我的表单中包含以下部分的代码是这样的:
$form = $this->createFormBuilder($order)
->add('dateTakeout', DateType::class, array('label' => "Kies uw datum voor afhaling *", 'required' => true))
->add('hourTakeout', TimeType::class, array('label' => "Kies het gewenste uur van afhalen *", 'required' => true));
但现在我希望你只能在后天select + 只能在下午 3 点到午夜 .
但我不知道如何在表格中预见这一点。有人可以帮我吗?
更新:
我想限制下拉菜单中的选项数量。所以他们不能选择像 2016 年 6 月 21 日这样的日子或像下午 1 点这样的时间。
您可以通过多种方式执行此操作:
您可以获得当前日期,然后像上面一样在您的控制器中查看日期是否在未来(假设是 7 月 1 日)。然后创建一个 Flashbag 消息并重定向到一个 Flash twig 模板。
对于小时数,您也可以执行相同的操作,检查小时数(加上分钟数)是否在您指定的时间范围内,如果不在,则创建 Flash 错误消息并重定向到 twig。
另一种选择(更难 - 可能需要更多代码)是基于作为日期时间对象的实体创建表单 class。理想情况下只有一个包含日期和时间的实体。我无法就此向您提出建议,但我没有尝试过;但我知道这应该是可能的。
Forms Classes are explained in this link.
我希望这能回答问题?
编辑#2。 第二次检查您的问题后,我发现您可以使用 TimeType::class 字段来做到这一点:
->add('hourTakeout', TimeType::class, array(
'label' => "Kies het gewenste uur van afhalen *",
'required' => true,
'widget' => 'choice',
'hours' => range(15,23),
));
这限制了您从下午 3 点到晚上 11 点的可选时间(我使用范围函数输入了 24 小时格式。这只是针对小时的修复。 希望这是有道理的。