Symfony3:动态添加新数据后无法发送表单

时间:2017-04-13 15:18:01

标签: symfony-forms symfony-3.2

所以我使用symfony已经有一段时间但是有问题,每次我面对它时,我都非常生气,认真:)。 假设我有一个实体Client与实体OneToManyAddress关系,让我们说我有一个有两个选择的表单:客户端和地址,所以我选择一个客户端并加载它的地址在下面的选择中动态使用ajax,如下图所示:
enter image description here 发送带有选定客户端和地址的表单后,symfony会向我提供有关地址选择的错误:
This value is not valid
这是我的构建者,它给了我这个错误:

$builder
->add('client', EntityType::class, array(
                'class' => Client::class,

      ))
->add('addresses', EntityType::class, array(
                'class' => Address::class,
                'choices' => array(), //---To force symfony to not launch a query to get all addresses
      ))

当我删除行'choices' => array()时,表单正常工作并正确发送数据 我真的需要解决这个问题,因为我在我的应用程序中需要这样的东西,我现在正在研究它。

1 个答案:

答案 0 :(得分:0)

使用此代码,就像你告诉Symfony不接受它。

'choices' => array()

显然,在您的应用中,地址的选择取决于每个客户。因此,解决方案是使用表单事件动态修改表单。这是Symfony官方文档中的一个很好的例子。 Dynamic Generation for Submitted Forms