如何将映射添加到表单
How to add mapping to a form
我有一个使用表单 class 创建的表单。此表单的一个字段是 country_id,它在文本字段中为我提供了一个国家 ID。
但是,我想创建一个 select 字段,不仅包含所有 ID,还包含由这些 ID 映射的国家/地区名称。
我在数据库中有一个 table 将国家 ID 映射到名称。但是,表单只使用了一个实体,而不是这个。
如何使用此处的另一个 table 创建 select?我该如何解决?
谢谢!
编辑:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', 'text', ['required' => false])
->add('address', 'text', ['required' => false])
->add('zipCode', 'text', ['required' => false])
->add('city', 'text', ['required' => false]);
$builder->add('country', 'entity', [
'class' => 'AcmeBundle:Country',
'property' => 'shortName',
'required' => false,
]);
// $builder->add('country', 'text', ['required' => false]);
$builder->add('number', 'text', ['required' => false]);
}
这就是我们称之为 Foo 实体的整个方法。它以 id 作为值生成正确的 HTML,但仍然存在我在评论中提到的那些错误。
您需要 entity Field Type
。您的 FormType
应如下所示:
$builder->add('country', 'entity', array(
'class' => 'YourBundle:Country',
'property' => 'name',
));
我有一个使用表单 class 创建的表单。此表单的一个字段是 country_id,它在文本字段中为我提供了一个国家 ID。
但是,我想创建一个 select 字段,不仅包含所有 ID,还包含由这些 ID 映射的国家/地区名称。
我在数据库中有一个 table 将国家 ID 映射到名称。但是,表单只使用了一个实体,而不是这个。
如何使用此处的另一个 table 创建 select?我该如何解决?
谢谢!
编辑:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name', 'text', ['required' => false])
->add('address', 'text', ['required' => false])
->add('zipCode', 'text', ['required' => false])
->add('city', 'text', ['required' => false]);
$builder->add('country', 'entity', [
'class' => 'AcmeBundle:Country',
'property' => 'shortName',
'required' => false,
]);
// $builder->add('country', 'text', ['required' => false]);
$builder->add('number', 'text', ['required' => false]);
}
这就是我们称之为 Foo 实体的整个方法。它以 id 作为值生成正确的 HTML,但仍然存在我在评论中提到的那些错误。
您需要 entity Field Type
。您的 FormType
应如下所示:
$builder->add('country', 'entity', array(
'class' => 'YourBundle:Country',
'property' => 'name',
));