【发布时间】:2018-10-30 08:39:18
【问题描述】:
那么,让表单一遍又一遍地有效呈现相同表单的最佳方法是什么?基于实体的属性值有条件地禁用字段?
我有一个发票实体,需要一个用于创建发票的表单,以及在发票流程的各个阶段(生成、发送、支付等)禁用各个字段的相同表单。
我认为最简单的答案是通过 form_row 选项在 twig 模板中动态禁用它们,但这肯定会影响表单的服务器端验证,因为它不知道该字段已被禁用?
根据数据库中的值禁用字段的最佳方法是什么?
编辑 1:
将问题从Dynamically disable a field in the twig template or seperate class for each form? 更改为Symfony4 Forms - How do you conditionally disable a form field?
【问题讨论】:
-
您可以使用form events(通常是 PRE_SET_DATE 事件)根据实体值动态修改表单。另一方面,仅仅使用不同的形式往往更容易理解。
-
@Cerad。谢谢你的推动。
PRE_SET_DATE把我送到了正确的答案:)