Forms Symfony映射表单字段

Forms Symfony映射表单字段,forms,symfony,symfony-forms,Forms,Symfony,Symfony Forms,我在Symfony上重写旧的不推荐的RESTAPI,问题是如何在Symfony表单上映射和验证具有不同名称的字段 例如,我有一个Symfony表单,带有字段: ->add('receiverCity', TextType::class, ['constraints' => new NotBlank()]) ->add('receiverCountry', TextType::class, ['constraints' => new NotBlank()]) ->ad

我在Symfony上重写旧的不推荐的RESTAPI,问题是如何在Symfony表单上映射和验证具有不同名称的字段

例如,我有一个Symfony表单,带有字段:

->add('receiverCity', TextType::class, ['constraints' => new NotBlank()])
->add('receiverCountry', TextType::class, ['constraints' => new NotBlank()])
->add('receiverPostCode', TextType::class, ['constraints' => new NotBlank()])
在Controller from request中,我得到相同的字段,名称不同,如:

$data = ['city' => 'My city', 'country' => 'My country', 'postal' => 'My post code'];
然后我手动提交表单$form->submit$data。问题是,在表单中映射和验证此字段的最佳方法是什么?我应该使用表单事件还是有一种更简单的方法来实现这一点?

您可以使用属性路径选项。有关更多信息,请参见

您需要将旧字段名用作表单字段名,并将属性路径设置为对象中的实际字段名:

->添加'city',TextType::class, [ '约束'=>新建非空, “财产路径”=>“接管城市” ] ->添加'country',TextType::class, [ '约束'=>新建非空, “财产路径”=>“接收国” ] ->添加'postal',TextType::class, [ '约束'=>新建非空, '属性路径'=>'收件者邮政编码' ] 您可以使用属性路径选项。有关更多信息,请参见

您需要将旧字段名用作表单字段名,并将属性路径设置为对象中的实际字段名:

->添加'city',TextType::class, [ '约束'=>新建非空, “财产路径”=>“接管城市” ] ->添加'country',TextType::class, [ '约束'=>新建非空, “财产路径”=>“接收国” ] ->添加'postal',TextType::class, [ '约束'=>新建非空, '属性路径'=>'收件者邮政编码' ]