我想创建一个表单来添加用户:
$builder->add('firstname', 'text', array(
'required' => 'required'
))
->add('middlename')
->add('lastname')
->add('email', 'email')
->add('isActive');
Run Code Online (Sandbox Code Playgroud)
但我想添加一个组.我有一个实体"组"和一个表单"GroupType".但是如何在我的所有组中添加一个选项来选择一个或多个?
我试过了:
->add('groups', 'choice' )
Run Code Online (Sandbox Code Playgroud)
但得到这个错误:
Notice: Object of class Doctrine\Common\Collections\ArrayCollection could not be converted to int in /vendor/symfony/symfony/src/Symfony/Component/Form/Extension/Core/ChoiceList/ChoiceList.php line 457
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题?
我有简单的UserInterface实体:
function getRoles()
{
return $this->roles->toArray();
}
Run Code Online (Sandbox Code Playgroud)
与Role Entity接口有很多很多关系
/**
* @ORM\ManyToMany(targetEntity="Role", inversedBy="users", cascade={"persist"})
*/
protected $roles;
Run Code Online (Sandbox Code Playgroud)
当我尝试使用表单类型管理用户角色时
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('roles');
}
Run Code Online (Sandbox Code Playgroud)
Symfony给我一个错误:
期望参数类型为"Doctrine\Common\Collections\Collection","array"
我知道错误是在实体User的getRoles方法中返回一个数组,但我也知道getRoles是接口的一个方法,必须返回一个数组!
谁有一个很好的解决方案?