我正在尝试使用下拉列表创建表单。数据来自实体。 问题是我得到了一个类型"对象","整数"的预期参数。给予例外。
以下是我尝试在表单中填充下拉列表的方法:
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('country', 'entity', array(
'class' => 'SciForumVersion2Bundle:Country',
'property' => 'country',
));
}
在我的实体国家/地区,我有
/**
* @ORM\Column(type="text")
*/
protected $country;
我在表单中编辑的对象是用户对象:
$enquiry = $this->get('security.context')->getToken()->getUser();
在用户实体中,我有
/**
* @ORM\Column(type="integer")
*/
protected $country;
我不知道为什么会收到此错误。
答案 0 :(得分:2)
您的模型设计中似乎存在问题,用户的“Country”属性应该是Many-To-One association,而不是整数(这就是表单构建器抱怨的原因):
/**
* @ORM\ManyToOne(targetEntity="Country")
* @ORM\JoinColumn(name="country_id", referencedColumnName="id")
**/
private $country;
“property”选项仅用于向用户显示实体选择,Symfony2使用“add”方法的第一个参数来决定要编辑的对象的哪个字段。