【问题标题】:Retrieving data from form inputs从表单输入中检索数据
【发布时间】:2020-04-23 09:41:51
【问题描述】:

我正在尝试从使用 symfony 创建的表单输入中检索数据

这是我的 FormUploaderType:

class FormUploaderType extends AbstractType
{
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('service', ChoiceType::class, [
                'placeholder'   => 'Wybierz serwis',
                'choices'       => [
                    'home'      => 'home',
                    'az'        => 'az',
                    'ionos.bg'  => 'ionosbg',
                    'ionos.ro'  => 'ionosro',
                    'ionos.hu'  => 'ionoshu',
                    ],
                'mapped'        => false,
            ])
            ->add('date', DateType::class)
            ->add('terms', FileType::class)
            ->add('button', SubmitType::class);
    }

这里是我的表单在 html 中的样子:

我正在尝试从 form_uploader_date 输入中获取数据,但是这行代码:

$date = $form->get('form_uploader')->getData();

或:

$date = $form->get('form_uploader[date]')->getData();

似乎不起作用...我不知道该怎么办...

【问题讨论】:

标签: php forms symfony


【解决方案1】:

你处理请求了吗?你应该这样做:

$form = $this->createForm(CLASS);
$form->handleRequest($request);` // you should inject Request from HttpFoundation namespace

之后,验证您的请求是否为POST,如下所示:

if($form->isSubmitted() & $form->isValid()) {
    $data = $form->getData(); 
// This array holds all your data. 
// Use this instead of accesing each element as $form->get('property-name')->getData();
}

注意:如果您的表单类与实体/模型相关联,则该表单将映射到该类。否则,它将只是一个数组。您不需要以这种方式访问​​它。此外,您可以使用 dump()dd()(适用于 Symfony 4.x +)函数以漂亮的格式转储您的内容。

【讨论】:

  • 谢谢,这个有帮助! :)
猜你喜欢
  • 1970-01-01
  • 2018-04-22
  • 2017-09-16
  • 1970-01-01
  • 2018-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多