aur*_*535 1 forms symfony-forms symfony
我正在 Symfony 上重写旧的已弃用的 REST API,问题是如何在 Symfony 表单上映射和验证具有不同名称的字段。
一个例子,我有 Symfony 表单,其中包含字段:
->add('receiverCity', TextType::class, ['constraints' => new NotBlank()])
->add('receiverCountry', TextType::class, ['constraints' => new NotBlank()])
->add('receiverPostCode', TextType::class, ['constraints' => new NotBlank()])
Run Code Online (Sandbox Code Playgroud)
在请求的控制器中,我得到具有不同名称的相同字段,例如:
$data = ['city' => 'My city', 'country' => 'My country', 'postal' => 'My post code'];
Run Code Online (Sandbox Code Playgroud)
然后我手动提交表单$form->submit($data)。问题是在表单中映射和验证该字段的最佳方法是什么?我应该使用表单事件还是有更简单的方法来做到这一点?
您可以使用该property_path选项。(另请参阅Symfony 文档以获取更多信息)。
您需要使用“旧”字段名称作为表单字段名称,并将 设为property_path对象内的实际字段名称:
->add('city', TextType::class,
[
'constraints' => new NotBlank(),
'property_path' => 'receiverCity'
]
)
->add('country', TextType::class,
[
'constraints' => new NotBlank(),
'property_path' => 'receiverCountry'
]
)
->add('postal', TextType::class,
[
'constraints' => new NotBlank(),
'property_path' => 'receiverPostCode'
]
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1802 次 |
| 最近记录: |