在隐藏的表单字段类型中传递实体

Pass entity in a hidden form field type

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

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

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

谢谢

使用自定义类型和转换器的解决方案可能更好,但如果您只想快速破解,可以在表单构建器中将字段设置为实体类型

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()

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