gpt4 book ai didi

forms - Symfony 营业时间表格

转载 作者:行者123 更新时间:2023-12-04 10:57:13 24 4
gpt4 key购买 nike

目前正在尝试创建一个表单来提交营业时间。目前我实现了一个表格,用户可以选择特定的日期(星期一,星期二,...)和开放时间(hh:mm)加上关闭时间(hh:mm)。

我的表单类型目前看起来像这样:

        $builder
->add('weekday', EntityType::class, ['label' => 'app.weekday', 'class' => Weekday::class, 'choice_label' => 'name', 'choice_translation_domain' => true])
->add('open', TimeType::class, ['label' => 'site.hours.open', 'input' => 'datetime_immutable'])
->add('close', TimeType::class, ['label' => 'site.hours.close', 'input' => 'datetime_immutable'])
->add('submit', SubmitType::class, ['label' => 'app.save']);

我选择使用自己的实体来保存我的工作日,其中 1 = 星期一,2 = 星期二,...(id,名称)。

但是,这会呈现一个表单,其中用户必须选择每天 + 每次 => 提交表单并在其他日期/时间再次重做。

这是非常不方便的。我的理想解决方案是使用 CollectionType对于每一天,您可以在其中添加更多时间到集合中,并提交 1 个包含每周所有时间的表单。

现在这是我开始挣扎的地方。我可以再做一个 FormType在那里我将我当前的一个作为一个集合嵌入 - 繁荣完成。然而,这仍然需要用户选择每一天 - 我不想要。

那我想要什么?使用以下方式创建表单的 FomType:
Monday    OpenSelect (HH:MM)     CloseSelect (HH:MM)  [remove Button]
OpenSelect (HH:MM) CloseSelect (HH:MM) [remove Button]
OpenSelect (HH:MM) CloseSelect (HH:MM) [remove Button]
--------- ADD Button ------------

Tuesday OpenSelect (HH:MM) CloseSelect (HH:MM) [remove Button]
--------- ADD Button ------------

...

我不希望用户选择星期一/星期二等 - 它们应该已经设置好了。只需为每一天的集合添加新的时间。

如果有什么不清楚的,请随时提问。谢谢

最佳答案

您有两种可能的解决方案:

1) 使用已经创建的集合创建底层表单对象

2) 使用 form event (即:POST_SET_DATA ?)以编程方式将丢失的元素(创建新元素时所有元素都会丢失,但编辑时其中一些可能存在)添加到集合中

关于forms - Symfony 营业时间表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59100480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com