Php 使用带有symfony 3的表单将数据获取到数组中
我在这里感觉有点傻,因为我在symfony 3中做了一些复杂的事情,但我不知道,当我尝试简单的任务时,有一些简单的东西是我遗漏的 这应该很简单,但我不能让它工作 在get方法中从请求获取数据非常简单。只要使用“请求->查询('param')”就足够了 但我想使用formtype或form创建一个带有这些参数的索引数组,并利用自动将数据转换为正确类型的优势 我有这个阵列:Php 使用带有symfony 3的表单将数据获取到数组中,php,symfony,symfony-forms,Php,Symfony,Symfony Forms,我在这里感觉有点傻,因为我在symfony 3中做了一些复杂的事情,但我不知道,当我尝试简单的任务时,有一些简单的东西是我遗漏的 这应该很简单,但我不能让它工作 在get方法中从请求获取数据非常简单。只要使用“请求->查询('param')”就足够了 但我想使用formtype或form创建一个带有这些参数的索引数组,并利用自动将数据转换为正确类型的优势 我有这个阵列: $booking = ['dateIn' => null, 'dateOut' => null] 这张表呢 $f
$booking = ['dateIn' => null, 'dateOut' => null]
这张表呢
$form = $this->createFormBuilder($booking, ['csrf_protection' => false])
->setMethod('GET')
->add('dateIn', TextType::class)
->add('dateOut', TextType::class)
->getForm();
当我调用后转储数据时
“/book?dateIn=xxxx&dateOut=xxxxx”
它还是
['dateIn' => null, 'dateOut' => null]
我使用TextType而不是DateType来简化它,并在测试这个东西时排除了其他问题。但我的目标是让这个参数也转换
怎么了?我应该让它“更简单”(避免表单)还是使用真正的预订类等等。我不想使用任何安全复杂性,因为我在这里不需要它
谢谢 默认表单名称是
表单
,因此我认为这应该适用于以下参数:
/预订?[form]dateIn=xxxx和[form]dateOut=xxxxx
您可以使用formFactory服务修改表单名称,例如:
$form = $this->get('form.factory')->createNamedBuilder('','Symfony\Component\Form\Extension\Core\Type\FormType', $booking, ['csrf_protection' => false])
->setMethod('GET')
->add('dateIn', TextType::class)
->add('dateOut', TextType::class)
->getForm();
或者创建一个经典表单类型并实现getBlockPrefix
方法并返回一个空字符串
希望这些帮助谢谢!!表单名称!!!由于我总是使用post或json封装的数据向控制器发送数据,所以我没有注意到那个简单但重要的细节。
$form = $this->get('form.factory')->createNamedBuilder('','Symfony\Component\Form\Extension\Core\Type\FormType', $booking, ['csrf_protection' => false])
->setMethod('GET')
->add('dateIn', TextType::class)
->add('dateOut', TextType::class)
->getForm();