所以我使用symfony已经有一段时间但是有问题,每次我面对它时,我都非常生气,认真:)。
假设我有一个实体Client
与实体OneToMany
有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()
时,表单正常工作并正确发送数据
我真的需要解决这个问题,因为我在我的应用程序中需要这样的东西,我现在正在研究它。
答案 0 :(得分:0)
使用此代码,就像你告诉Symfony不接受它。
'choices' => array()
显然,在您的应用中,地址的选择取决于每个客户。因此,解决方案是使用表单事件动态修改表单。这是Symfony官方文档中的一个很好的例子。 Dynamic Generation for Submitted Forms