Php 如何向窗体添加映射

Php 如何向窗体添加映射,php,forms,symfony,Php,Forms,Symfony,我有一个使用form类创建的表单。此表单的一个字段是country_id,它在文本字段中为我提供一个country id 但是,我希望创建一个select字段,不仅使用所有ID,而且使用这些ID映射的国家名称 我在数据库中有一个表,将国家ID映射到名称。但是,表单只使用一个实体,而不是这个实体 如何使用此处的其他表格创建该select?我怎样才能解决这个问题 谢谢 编辑: 这就是我们称之为Foo实体的整个方法。它以ID作为值生成正确的HTML,但仍然存在我在注释中提到的错误。您需要实体字段类型。

我有一个使用form类创建的表单。此表单的一个字段是country_id,它在文本字段中为我提供一个country id

但是,我希望创建一个select字段,不仅使用所有ID,而且使用这些ID映射的国家名称

我在数据库中有一个表,将国家ID映射到名称。但是,表单只使用一个实体,而不是这个实体

如何使用此处的其他表格创建该select?我怎样才能解决这个问题

谢谢

编辑:


这就是我们称之为Foo实体的整个方法。它以ID作为值生成正确的HTML,但仍然存在我在注释中提到的错误。

您需要
实体字段类型。您的
表单类型应如下所示:

$builder->add('country', 'entity', array(
    'class' => 'YourBundle:Country',
    'property' => 'name',
));

太好了!但是如何将这些名称映射到id,以便以基本形式将其插入实体?这就是
'property'=>'name'
的作用。它确保显示国家的名称,但ID将存储在数据库中True,并且所有值都正确,但我得到“Contry实体类型的对象无法转换为int”。为什么会这样?请在你的问题中添加你的代码,这样我可以更仔细地看一下好的,当然,我只是粘贴了实体类,还有什么吗?你添加了表单类型,而不是实体。请添加从数据库创建的aswell.entity
$builder->add('country', 'entity', array(
    'class' => 'YourBundle:Country',
    'property' => 'name',
));