我正在制作一个带有选择列表的表单。这是我的FormType的内容(仅作为测试):
$builder->add('regionUser');
$builder->add('roles' ,'choice' ,array('choices' => array(
"ROLE_ADMIN" => "ROLE_ADMIN",
"ROLE_USER" => "ROLE_USER",
),
'required' => true,
'multiple' => false,
));
执行此操作时,出现以下错误:
“scalar”类型的预期参数,“array”给出
出了什么问题?怎么解决?
答案 0 :(得分:2)
有3个解决方案:
使用多个选项字段显示角色字段。多 选项返回一个数组。
在您的表单中,不要显示“角色”字段。 仅在您的构建表中放置一个新字段“角色”,而不是在您的实体中。 (如果需要,您可以使用角色层次结构自动填充它)。 在onSuccess方法中,获取“角色”来为您的用户设置角色。
$ user-> addRole($ role);
// FOSUserBundle / UserInterface
function setRoles(array $ roles);
// YourUserBundle/UserInterface function setRoles($roles);
并更改用户类
中的方法// FOSUserBundle/UserInterface public function setRoles(array $roles) { $this->roles = array(); foreach ($roles as $role) { $this->addRole($role); } } // YourUserBundle/UserInterface public function setRoles($roles) { if (is_string()) { $this->addRole($roles); } else { $this->roles = array(); foreach ($roles as $role) { $this->addRole($role); } } }
您可以在此处找到更多信息:https://groups.google.com/group/symfony2/browse_thread/thread/3dd0d26bcaae4f82/4e091567abe764f9