为JSON API和动态多维数组使用Symfony表单
我将Symfony表单组件用于我们的restishjsonapi(灵感来源于) 现在我有了一些多维POST请求,它们总是使用相同的根键(为JSON API和动态多维数组使用Symfony表单,symfony,symfony-forms,Symfony,Symfony Forms,我将Symfony表单组件用于我们的restishjsonapi(灵感来源于) 现在我有了一些多维POST请求,它们总是使用相同的根键(name和actions),但子元素不同 { "name": "Name", "actions": [{ "type": "type_of_action", "config": { "name": "name", "assigned_to": "23cb1a6b-5a
name
和actions
),但子元素不同
{
"name": "Name",
"actions": [{
"type": "type_of_action",
"config": {
"name": "name",
"assigned_to": "23cb1a6b-5a99-4b91-ae72-b52882b45f47",
"information": "Lorem Impsum"
}
},{
"type": "type_of_other_action",
"config": {
"name": "name",
"dueDate": "2016-12-01"
"active": "true"
}
}]
}
正如您所看到的,config
可以在每个操作
-元素上有所不同。我需要这样的东西:
->add('config', [TaskActionType::class, OtherActionType::class])
我知道,不可能呈现这样的表单,但我只需要它来验证请求并将其传输到可靠的数组中(
$data=$form->get('actions')->getData()
)。尝试将option param发送到表单中,然后呈现该子表单类型
控制器:
$form = $this->createForm(MainForm::class, null, [
'method' => Request::METHOD_POST,
'param' => $param
]);
主要表格:
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$param = $options['param'];
if (param == "type1") {
$builder
->add('config', FormType1::class))
} elseif (param == "type2") {
$builder
->add('config', FormType2::class))
}
}
我希望这就是您所需要的。尝试将option param发送到表单中,然后呈现该子表单类型 控制器:
$form = $this->createForm(MainForm::class, null, [
'method' => Request::METHOD_POST,
'param' => $param
]);
主要表格:
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$param = $options['param'];
if (param == "type1") {
$builder
->add('config', FormType1::class))
} elseif (param == "type2") {
$builder
->add('config', FormType2::class))
}
}
我希望这就是你所需要的。对不起,不是真的。一个请求可以同时包含两个
config
对象。对不起,不是真的。一个请求可以同时包含config
对象。