php - Symfony 表单和 json 对象验证
问题描述
我正在尝试创建一个类型的对象,比如说,Slot
与其他类型的对象相关,Customer
. 这是发布请求正文的样子。
{
"name: "foo
"customer": {id: 21}
}
这是我获取数据和构建表单的方式:
$data = json_decode($request->getContent(), true);
$entity = new Slot();
$entityManager = $this->getDoctrine()->getManager();
$form = $this->createForm(SlotType::class, $entity);
$form->submit($data, true);
泽
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('customer', EntityType::class, [
"class" => Customer::class
]);
我用来提交此数据的表单使用EntityType
表单类型,但它似乎无法识别为该customer
字段发布的数据,并告诉我该值对该字段无效。我是否需要预处理控制器中的数据以使用关联实体填充我的实体?或者有没有办法将 dataTransformers 附加到SlotType
用有效数据填充表单?
解决方案
您可以使用具有属性(slotTypeName 和 customerId)的 DTO,表单会更容易,并且在验证后您可以使用此 DTO 来构建您的实体
推荐阅读
- amazon-web-services - EMR 作业长时间运行通知
- sql - 仅使用某些子项填充 JPA 填充子数组(一对多)
- java - 创建 jar 工件后 IntelliJ 没有 Main Mainifest 属性
- java - 获取 IllegalStateException:Session/EntityManager 在 session.evict() 上关闭
- azure - 是否可以通过 PowerShell 命令列出 extensionAttribute1 - extensionAttribute15?
- gradle - Gradle 配置集成
- math - 在计算 rust 时我有 `-inf`:什么是`-inf`?
- angular - OKTA redirect_uri 中的动态 URL
- keras - 将 hyperopt(或 hyperas)与 Keras 和 ImageDataGenerator "flow_from_directory" 一起使用
- android - 将项目迁移到 AndroidX 后,com.paymob.acceptsdk.PayActivity void androidx.appcompat.app.ActionBar 崩溃