1

我正在尝试在下拉列表中创建一个表单。数据来自实体。问题是我得到了一个“对象”类型的预期参数,“整数”给定异常。

这是我尝试在表单中填充下拉列表的方式:

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;

我不知道为什么我会收到这个错误。

4

1 回答 1

2

您的模型设计中似乎存在问题,用户的“国家/地区”属性应该是多对一关联,而不是整数(这就是表单构建器抱怨的原因):

/**
 * @ORM\ManyToOne(targetEntity="Country")
 * @ORM\JoinColumn(name="country_id", referencedColumnName="id")
 **/
private $country;

“property”选项仅用于向用户显示实体选择,Symfony2 使用“add”方法的第一个参数来决定要编辑对象的哪个字段。

于 2012-10-11T12:51:21.923 回答