我有一份表格可供您选择(除其他外):
看起来是这样的:

我的表单中包含以下部分的代码如下:
$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));但是现在我想你只能选择后天的+,只有下午3点到午夜。
但我不知道如何在形式上预见到这一点。有人能在我路上帮我吗?
更新:
我想在我的下拉列表中限制选项的数量。所以他们不能选择2016年6月21日这样的日子,也不能选择下午1点这样的时间
发布于 2016-06-21 23:22:46
有许多方法可以做到这一点:
您可以得到当前日期,然后像上面一样在控制器中查看日期是否在未来(假设是7月1日)。然后创建一个Flashbag消息并重定向到Flashbag模板。
对于小时,您还可以执行相同的操作,检查时间(加分钟)是否在指定的时间范围内,如果不创建Flash错误消息,则将其重定向到twig。
另一个选项(可能会有更多代码)是基于一个实体创建一个表单类,该实体是您的Date Time对象。理想情况下,只有一个包含日期和时间的实体。我不能就此向你提出建议,但我没有尝试过,但我知道这是可能的。
表单类将在此链接中解释。。
我希望这能回答这个问题?
编辑#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小时格式)。这是个只适用于几个小时的解决办法。希望这是合理的。
https://stackoverflow.com/questions/37955521
复制相似问题