php - 是否可以使用 symfony 表单从请求创建多个实体?
问题描述
我使用 symfony 表单来处理 API 请求。我有 Event 实体和 EventForm 类。我需要制作批量 API 来一次创建多个事件。如何重用现有表单来创建多个事件实体?请求将如下所示:
{
"events": [
{
"title": "Event One",
"description": "",
"startsAt": "2019-08-16T16:00:00+0300",
"endsAt": "2019-08-16T17:00:00+0300",
"allDay": false
},
{
"title": "Event Two",
"description": "",
"startsAt": "2019-08-16T16:00:00+0300",
"endsAt": "2019-08-16T17:00:00+0300",
"allDay": false
}
]
}
我阅读了有关嵌入https://symfony.com/doc/3.4/form/form_collections.html的表单,看来这不是我的情况,因为我不需要将多个子实体设置为父实体,而只需创建多个事件。
这是我的 EventForm 课程:
class EventForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title', TextType::class, [
'required' => true,
])
->add('description', TextType::class, [
'required' => false,
'empty_data' => '',
])
->add('startsAt', DateTimeType::class, [
'required' => true,
'widget' => 'single_text',
])
->add('endsAt', DateTimeType::class, [
'required' => true,
'widget' => 'single_text',
])
->add('allDay', CheckboxType::class, [
'required' => true,
])
;
}
}
我创建 BulkEventForm 类:
class BulkEventForm extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('events', CollectionType::class, [
'entry_type' => EventForm::class
])
;
}
}
我希望我得到一个数组或事件集合,但是在处理请求表单数据之后是:
[
'events' => []
]
是否可以在不循环请求和创建多个表单的情况下获得预期的结果?
解决方案
推荐阅读
- reactjs - (React/TypeScript) 将 onKeyDownEventHandler 添加到画布元素中
- android - 我的手机(和某些应用程序)如何知道将哪个国家/地区代码前缀(如 +1、+505、+49...)附加到我的联系人中的号码
- javascript - 制作 wordpress 插件,需要帮助找出 curl 和表格的最佳方法
- python - 查看链接:/usr/share/pip-wheels
- c# - Dotnet Core 如何将 HttpClient 传递给 ServiceModel?
- android - 片段中的 Xamarin Android Google 地图错误
- rstudio - 如何在 R Studio Windows 中查看表情符号代码点的图形表示?
- firebase - 我可以将 Firebase Analytic Web SDK 用于 Cordova 应用程序吗?
- r - 直方图:“x”必须是数字
- c# - C# Windows 应用程序在启动时抛出并排错误