我认为我在验证,一对一关系和部分表单提交方面存在问题。
以下是该方案:
我有以下实体:
Opportunity
Deal
PaymentPreferences
具有以下关系:
Opportunity
有一个Deal
Opportunity
有一个PaymentPreferences
我还有以下表格来匹配实体关系:
OpportunityType
有孩子DealType
和PaymentPreferencesType
在这里,它变得棘手......
Opportunity->paymentPreferences
是可选的Opportunity->paymentPreferences
不为空,则PaymentPreferences
具有必需属性:numberOfPayments
我需要:
Opportunity
可以使用Deal
提交,但不能PaymentPreferences
PaymentPreferences
的前端表单因此...
从API方面来说,我认为可以使用表单上的事件监听器来解决这个问题。如果提交的数据中没有PaymentPreference
,请不要将PaymentPreferencesType
添加到OpportunityType
表单。听起来不错?
在前端,我认为我需要某种按钮来添加付款偏好"。我不确定这是正确的方法还是我将如何添加它。如果这是一对多关系,我可以使用带有allow_add和allow_remove的CollectionType
。
我正在运行Symfony3。
答案 0 :(得分:0)
也许你可以这样做:
PaymentPreferencesType
添加到主表单。PaymentPreferences
PaymentPreferences
的字段,(当子窗体被隐藏时,不要忘记重置字段-ie。{ {1}})然后在您的实体$('#paymentPreferences_numberOfPayments').val('').
中,而不是在numberOfPayments字段上使用nullable = false,只需使用类似
PaymentPreferences