【发布时间】:2018-04-22 13:35:35
【问题描述】:
我在 Symfony 3 的 formType 中使用 EntityType。 当我以新形式显示它时,一切都很好,choicetype liste 包含我数据库中的所有值。 但是当我从我的数据库加载现有数据时,选择列表不会从数据库加载值,它会显示占位符。 我已签入数据库并保存了值。 我的表格是这样的
->add('tester', EntityType::class, array(
'class' => 'MyBundle:TesterList',
'query_builder' => function (EntityRepository $er) {
return $er->createQueryBuilder('u')
->orderBy('u.name', 'ASC');
},
'choice_label' => 'name',
'choice_value' => 'name',
'required' => true,
'placeholder' => 'Select a tester',
))
为了测试,我尝试将 EntityType 更改为具有 2 列表的 ChoiceType,它可以完美运行。 不知道EntityType有什么问题。
编辑: 该字段在我的表单中显示如下:
{{ form_label(formHydraulicTest.testHeader.tester,'Tester' | trans) }}
{{ form_widget(formHydraulicTest.testHeader.tester) }}
实体 TesterList 与其他实体没有任何关系。它只是一个名称列表。
当我尝试保存时,EntityType 返回一个 TesterList 对象,所以我在 TesterList 实体中添加了这个函数。
public function __toString() {
return $this->name;
}
这样我只保存了测试人员的姓名,而不是实体的链接。
【问题讨论】:
-
请添加一些关于您的 TesterList 实体和表单的信息。这段代码没有任何问题,所以问题一定出在其他地方。
标签: php symfony symfony-3.3