0

所以我使用了一段时间的 symfony,但有一个问题是,每次我面对它时,我都会非常生气,认真的 :)。
假设我有一个与 entityClientOneToMany关系的实体Address,假设我有一个带有两个选择的表单:客户端和地址,所以我选择一个客户端并使用 ajax 在下面的选择中动态加载它的地址,如下图所示:
在此处输入图像描述 在发送带有选定客户端和地址的表单后,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(),表单可以正常工作并正确发送数据。
我真的需要解决这个问题,因为我现在正在处理的应用程序中需要很多类似的东西。

4

1 回答 1

0

有了这段代码,就像你告诉 Symfony 接受不是一件事情。

'choices' => array()

显然,在您的应用程序中,地址的选择取决于每个客户。所以解决方案是使用表单事件来动态修改您的表单。这是 Symfony 官方文档中的一个很好的例子。 提交表单的动态生成

于 2017-04-14T00:19:44.490 回答