以隐藏表单字段类型传递实体

时间:2015-08-25 16:38:12

标签: symfony symfony-forms

我一直在尝试设置隐藏的自定义字段类型和变换器,如下例所示:https://gist.github.com/bjo3rnf/4061232

我想要实现的是通过隐藏元素传递一个实体,该实体应该映射表单的实体,但出于某种原因,当它到达控制器时它会变空。

有人可以帮助我如何通过表单传递实体?

谢谢

1 个答案:

答案 0 :(得分:1)

使用自定义类型和变换器的解决方案可能更好,但如果您只想快速入侵,可以在formbuilder中将字段设置为实体类型

public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
            ->add('yourField', 'entity', array('class' => 'AppBundle\Entity\YourEntity', 'read_only' => true));
    }

然后在模板中执行以下操作:

<input type="hidden" id="{{ form.yourField.vars.id }}" 
    name="{{ form.yourField.vars.full_name }}" 
    value="{{ form.yourField.vars.value }}" />
{% do form.yourField.setRendered %}

请注意,在调用form_widget()

之前,这必须位于表单的顶部