php - Symfony pre_submit 更改字段顺序

标签 php symfony symfony-forms

给定以下表单类型,我如何在提交前呈现我的第二个字段? 我尝试使用 $form->remove 但我总是会收到此错误:

Warning: Illegal offset type in isset or empty

不太确定如何解决这个问题。

/**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('survey', EntityType::class, [
            'class' => SurveyManager::class,
            'attr' => [
                'class' => 'field-change',
            ],
        ])
        ->add('submit', SubmitType::class, [

        ])
        ->addEventListener(
            FormEvents::PRE_SUBMIT,
            function (FormEvent $event) {
                $form = $event->getForm();

                $data = $event->getData();
                $modifier = $data['survey'];
                $form->add('headquarter', EntityType::class, [
                    'class' => HeadQuarterManager::class,
                    'query_builder' => function (HeadQuarterManagerRepository $er) use ($modifier) {
                        return $er->getHeadquarter($modifier);
                    },
                ]);
            }
        );
}

最佳答案

我使用的解决方案是从类类型中删除提交按钮,然后手动将其添加到模板中,然后在提交按钮前使用 {{ form_rest(form) }},它会正常显示。

关于php - Symfony pre_submit 更改字段顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39965267/

相关文章:

php - 尝试在 PHP 代码之后执行 HTML

php - Windows环境变量与配置文件

php - 通过选择 php 中的下拉列表选项从数据库中选择数据

php - BrowserKit 组件不可用

php - 创建 Symfony2 表单主题 - 字段集和列表样式

php - 我该如何解决 "Non-static method xxx::xxxx() should not be called statically"

css - 在 dev 中调用了来自 css Assets 的 404 错误

symfony - 如何在 Twig 中将字符串转换为数组

我的 UserController 的 PHPunit 没有覆盖所有行

forms - 如何在 Symfony2 表单中使用现有实体?