Php symfony2表格隐藏行

Php symfony2表格隐藏行,php,symfony,Php,Symfony,我试图在表单中为特定用户放置两个隐藏字段。我有以下代码: <div id="mio_miobundle_empleadotype"> {{ form_row(edit_form.dni) }} {{ form_row(edit_form.nombre) }} {{ form_row(edit_form.username) }} {{ form_row(edit_form.apellido1) }} {{ form_row(edit_form.apellido2) }} {{ form

我试图在表单中为特定用户放置两个隐藏字段。我有以下代码:

<div id="mio_miobundle_empleadotype">
{{ form_row(edit_form.dni) }}
{{ form_row(edit_form.nombre) }}
{{ form_row(edit_form.username) }}
{{ form_row(edit_form.apellido1) }}
{{ form_row(edit_form.apellido2) }}
{{ form_row(edit_form.localidad) }}
{{ form_row(edit_form.provincia) }}
{{ form_row(edit_form.telefono) }}
{{ form_row(edit_form.movil) }}
{{ form_row(edit_form.email) }}
{{ form_row(edit_form.direccion) }}
{% if is_granted('ROLE_A') %}     
      {{ form_row(edit_form.activo) }}
      {{ form_row(edit_form.role) }}
{%endif%}
{{ form_row(edit_form.password) }}
但我得到了这个错误:

可捕获的致命错误:传递给mio\mioBundle\Entity\Empleado::setRole的参数1必须是mio\mioBundle\Entity\Role的实例,给定为空,在第347行的/var/www/Symfony/vendor/Symfony/src/Symfony/Component/Form/Util/PropertyPath.php中调用,并在/var/www/Symfony/src/mio/mioBundle/Entity/Empleado.php第289行中定义


我这样说是因为我必须填写状态是否有任何帮助?

与其不完全渲染字段,不如尝试使用css隐藏视图中的字段

{% if is_granted('ROLE_A') %}     
      {{ form_row(edit_form.activo) }}
      {{ form_row(edit_form.role) }}
{% else %}
      {{ form_widget(edit_form.activo, { 'attr': {'class': 'hide'} }) }}
      {{ form_widget(edit_form.role, { 'attr': {'class': 'hide'} }) }}
{% endif %}

将检查角色代码放入控制器中

public function someAction()
{
    $form = $this->createFrom( // ...
    if (false === $this->get('security.context')->isGranted('ROLE_A')) {
        $form->remove('activo');
        $form->remove('role');
    }

    // ...
}
并在模板中检查是否定义了表单字段

{{ edit_form.activo is defined ? form_row(edit_form.activo) : '' }}
{{ edit_form.role is defined ? form_row(edit_form.role) : '' }}

为什么需要这些隐藏字段?
{{ edit_form.activo is defined ? form_row(edit_form.activo) : '' }}
{{ edit_form.role is defined ? form_row(edit_form.role) : '' }}