forms - 无法从 s58c147845272f_products_2_suppliers_0_contacts 获取元素 ID 失败部件 : contacts sonata_admin symfony3

标签 forms symfony sonata-admin

设置

我正在使用 Symfony 3 和 SonataAdminBundle 3.1 开发一个项目。

我正在使用 sonata admin 的嵌套形式方法,其中我有 4 个实体:

类别、产品、供应商和联系人。它们都分别具有一对多的关系。

我正在使用 sonata_type_collection 将产品放入类别表单中,并使用它来将供应商放入产品表单中,并使用它来将联系人放入供应商表单中。联系表格有一个用于邮政编码的 sonata_type_model_list 字段。

问题

当我在类别 > 产品表单中单击供应商表单上的添加新联系人按钮时,我遇到了以下错误。

Could not get element id from s58c147845272f_products_2_suppliers_0_contacts Failing part: contacts

当我一步一步保存表单时,错误没有出现 - 比如我将产品添加到类别表单然后保存表单,然后将供应商添加到产品然后保存表单,以及当我添加联系人时- 加载了联系表并且没有抛出上述异常。此外,当我直接转到供应商表单并在那里添加联系人时,不会抛出异常。

仅当供应商未从类别表单中保存时才会抛出上述异常。

非常感谢任何帮助。

最佳答案

检查您的属性名称中是否有下划线,例如 my_file。尝试将其更改为 myFile 并相应地更改 Admin 类中的代码: $formMapper->add('my_file', 'file'); => $formMapper->add('myFile', 'file');.

更新:

我想我知道它具体是什么——你可能在你的 child 身上提到了你的 parent 。如果是这种情况,请为引用父项的实体添加管理类:

    $formMapper->add('[parent_reference_attribute]', 'sonata_type_model_hidden');

[parent_reference_attribute] 替换为引用父项的字段名称。

那么异常就应该消失了,至少在我的情况下是这样。

关于forms - 无法从 s58c147845272f_products_2_suppliers_0_contacts 获取元素 ID 失败部件 : contacts sonata_admin symfony3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42697867/

相关文章:

c# - Windows 窗体可见性问题

php - 如何使用 json_encode twig 函数在 twig 文件中使用 php json_encode 选项

php - Symfony 2 表单额外字段

php - 如何在 Sonata Admin 中显示/隐藏某些行的操作

php - Symfony3 无法创建对象

javascript - jQuery - 2 个相同的表单,只想验证提交的表单

Jquery 使一个 Div 成为可点击的表单区域

javascript - 在没有提交按钮的情况下提交最接近的表单?

symfony - 奏鸣曲媒体包覆盖

symfony 邮件程序的 PHP 异常