Php Symfony2表格-“;您不能更改已提交表单的数据。”;
我有一个表单,用户在其中选择首选的付款方式。所选付款方式的名称写在隐藏字段“paymentMethod”中。提交表单后,系统将检查客户是否可以获得付款(支付合作伙伴的API) 检查确定:应将用户重定向到确认页面(无问题) 检查失败:用户应再次查看表单,但隐藏字段paymentMethod必须设置为null,以便Payments的选择框再次可见Php Symfony2表格-“;您不能更改已提交表单的数据。”;,php,jquery,forms,symfony,Php,Jquery,Forms,Symfony,我有一个表单,用户在其中选择首选的付款方式。所选付款方式的名称写在隐藏字段“paymentMethod”中。提交表单后,系统将检查客户是否可以获得付款(支付合作伙伴的API) 检查确定:应将用户重定向到确认页面(无问题) 检查失败:用户应再次查看表单,但隐藏字段paymentMethod必须设置为null,以便Payments的选择框再次可见 问题:无法更改已提交表单的数据。对已“提交”的表单调用setData()时,会发生此错误 在这种情况下,要将paymentMethod设置为null,请在
问题:无法更改已提交表单的数据。对已“提交”的表单调用setData()时,会发生此错误 在这种情况下,要将paymentMethod设置为null,请在
FormType
类中添加一个函数:
/**
* this gets called in the final stage before rendering the form
*
* @return void
*/
public function finishView(FormView $view, FormInterface $form, array $options)
{
// set paymentMethod here
}
在已“提交”的表单上调用setData()时会发生此错误 在这种情况下,要将paymentMethod设置为null,请在
FormType
类中添加一个函数:
/**
* this gets called in the final stage before rendering the form
*
* @return void
*/
public function finishView(FormView $view, FormInterface $form, array $options)
{
// set paymentMethod here
}
解决方案非常简单: 我在FormModel中添加了一个函数:
public function resetPaymentMethod() {
$this->paymentMethod = null;
}
解决方案非常简单: 我在FormModel中添加了一个函数:
public function resetPaymentMethod() {
$this->paymentMethod = null;
}
当您试图修改从请求(isSubmitted)加载的表单中的数据时,通常会发生这种情况。请看一看,当您试图修改从请求加载的表单中的数据(Isubmited)时,通常会发生这种情况。看一看,但我不想在呈现它之前将paymentMethod设置为null。只有当所选的付款方式对客户不可用时,它才应该为null。但是我不想在呈现之前将paymentMethod设置为null。仅当客户无法使用所选的付款方式时,该值才应为空。是否需要详细说明?是否需要详细说明?