我花了好几个小时试图让我的多实体表单工作,但它真的让我头疼,我找到的例子都没有。
我有一个User实体、UserRole实体和一个Role实体。UserRole 包含一个用户 ID 和一个角色 ID。只是一个链接表。
该表单显示了创建用户的字段,我希望也能够为新用户选择一个新角色。所以我尝试使用 EntityType,一个选择下拉列表很好地显示了所有角色(只有当我添加选项映射 => false 时),但在表单提交后不处理。它的数据不在 $form->getData() 中,用户已创建,而 user_role 条目从未创建。如果我在没有映射 => false 的情况下尝试它,它会抛出我:
Could not determine access type for property "user_roles" in class "App\Entity\User": The property "user_roles" in class "App\Entity\User" can be defined with the methods "addUserRole()", "removeUserRole()" but the new value must be an array or an instance of \Traversable, "App\Entity\Role" given..
Run Code Online (Sandbox Code Playgroud)
代码:
$form = $this->createFormBuilder(new User)
... //other add entries …Run Code Online (Sandbox Code Playgroud)