Php EntityType中的选定选项为';t签入编辑屏幕

Php EntityType中的选定选项为';t签入编辑屏幕,php,symfony4,Php,Symfony4,我已经在基于EntityType的Symfony 4.2 Web应用程序中创建了一个表单字段 但是我在编辑条目时遇到了一些问题。在EntityType生成的下拉列表中未选择GUID(我使用它而不是常规id) 添加('fuel1',EntityType::class[ “类”=>化学::类, “选择标签”=>“名称”, “必需”=>false, ]) Chemical#1 我希望选择这个选项。该值在DB中是正确的,但数据似乎没有通过EntityType **编辑,添加了更多的代码**** /*

我已经在基于EntityType的Symfony 4.2 Web应用程序中创建了一个表单字段

但是我在编辑条目时遇到了一些问题。在EntityType生成的下拉列表中未选择GUID(我使用它而不是常规id)

添加('fuel1',EntityType::class[ “类”=>化学::类, “选择标签”=>“名称”, “必需”=>false, ])
Chemical#1
我希望选择这个选项。该值在DB中是正确的,但数据似乎没有通过EntityType

**编辑,添加了更多的代码****

/**
*@ORM\Column(type=“string”,length=255,nullable=true)
*/
私人$fuel_1;
加载项选项,如果已设置,则将其设置为实体id值

添加('fuel1',EntityType::class[ “类”=>化学::类, “选择标签”=>“名称”, “必需”=>false, “首选_选项”=>数组($builder->getData()->getChemical()->getId(), ]) 加载项选项,如果已设置,则将其设置为实体id值

添加('fuel1',EntityType::class[ “类”=>化学::类, “选择标签”=>“名称”, “必需”=>false, “首选_选项”=>数组($builder->getData()->getChemical()->getId(), ])
'preferred_choices'=>$builder->getData()->getFuel1()??null
尝试了此操作,但在
getFuel1()中有一个GUID字符串。我现在的回答如下:
属性“837ad5d5-9ba0-4aa2-afd0-08ad2b964e55”和方法“get837ad5d5-9ba0-4aa2-afd0-08ad2b964e55()”、“837ad5d5-9ba0-4aa2-afd0-08ad2b964e55()”、“is837ad5d5-9ba0-4aa2-afd0-08ad2b964e55()”、“has837AD5AD5D5-9AA0-08AD2B964U()”、“HasE502B964U()”在类“App\Entity\Chemical”中存在并具有公共访问权限。
$builder->getData()->getFuel1()->getId()->toString()
应将uuid作为字符串
dd(“837ad5d5-9ba0-4aa2-afd0-08ad2b964e55”)
已返回
“837ad5d5-9ba0-4aa2-afd0-08ad2b964e55”
因此它位于ID中。该值在实体中如下:
/***@ORM\Column(type=“string”,length=255,nullable=true)*/private$fuel\u 1
dd($builder->getData()->>getFuel1())
我的意思是,上面的注释中有打字错误。如果
$fuel\u 1
是一个字符串,
EntityType::class
不是正确的表单字段类型:您应该使用
ChoiceType::class
,从ChemicalRepository中填充
选项
,并将其设置为一个特制的数组(即:化学名称作为键,GUID作为值)。您应该将
$fuel\u 1
转换为带有化学实体
'preferred\u choices'=>$builder->getData()->getFuel1()?null
的manytone连接,但在
getFuel1()
中有一个GUID字符串。我现在的响应如下:
属性“837AD5-9BA5-5AD5-9BA5-9BA5-9BA5-9BA5-9BA5-9ba0-4AA5-4AA5-9ba0-4AA5-4aa2-AA2-AA2-AA5-AA5-9BA5-9BA5-9BA5-4AA0-4aa2-AA2-AA2-AA2-AFD00-08AD2-08AD2B964E5 5 5 5”也不是其中一个方法中的任何一个也不是其中的方法中的任何一个方法中的任何一个也不是其中一个方法“要么”也不是其中的方法“Get837AD5-5-5-5-5-5-5-55-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9BA5-9ba0()->getFuel1()*/private$fuel\u 1;
dd($builder->getData()->getFuel1())
我的意思是,在上面的注释中键入。如果
$fuel\u 1
是一个字符串,
EntityType::class
不是正确的表单字段类型:您应该使用
ChoiceType::class
,从ChemicalRepository中填充
选项
,并将其设置为一个特制的数组(即:chemical name作为键,GUID作为值)。您应该将
$fuel_1
转换为带有化学实体的多酮联接