【发布时间】:2020-12-14 06:21:03
【问题描述】:
我在 Symfony 5 中遇到了 EntityType 类的问题,我找不到让表单行返回 string 而不是实体 (MyEntity) 的方法。作为表单构建器的一部分,这基本上是我所拥有的:
$builder->add('myEntity', EntityType::class, [
'class' => MyEntity::class,
'placeholder' => "(Please select an option.)",
'choice_label' => 'name'
])
我的目标是让该字段返回 name 以选择 MyEntity,而不是整个实体(因此,与 'choice_label' 完全相同的值)。我已经尝试添加'choice_value' => 'name' 属性(带有'mapped' => false 属性,这在这种情况下显然是必要的),但无济于事。更准确地说,表单行开始返回null,而不是任何实体的string。
我将如何实现我的目标?
【问题讨论】:
-
您将其配置为期待一个实体 - 为什么您会期待其他任何东西?我相信data transformers 可能就是您想要的。
-
谢谢,事实证明在
MyEntity中为name字段定义__toString() 函数(与为name字段定义getter 方法完全相同)已修复它,我现在没有错误,并且成功提交到数据库。结案!