No se puede deshabilitar el campo de entidad y retener su valor

En un evento de formulario, establecer un campo'attr' => array('readonly' => 'readonly') se representa como"disabled" = "1". Este no es el efecto deseado. Un campo de selección deshabilitado persiste con un valor nulo al enviar. Un campo de solo lectura debe retener y persistir el valor mostrado. O eso pensé. Entonces, ¿cómo conseguir que el valor permanezca sin cambios e inmutables?

Editar;

Un campo oculto no hace el truco.choice_attr tampoco ayuda.

Estoy votando para cerrar esta pregunta. No he descubierto ningún método para mostrar un campo de entidad deshabilitado y también retener el valor. Si tienes alguna idea de cómo se hace ...

Un ejemplo (en Symfony 2.8.3): la entidad Hogar tiene seis atributos, cada uno de los cuales es una entidad en una relación OneToMany con Hogar. (La aplicación tiene otras entidades que tienen atributos similares). La entidad / atributo Vivienda de Hogar tiene dos propiedades: vivienda y habilitada. El cliente de la aplicación puede establecer una propiedad paraenabled = no si ya no tienen la intención de rastrear esa propiedad.

Si una propiedad se establece enenabled = no su disponibilidad en un formulario Hogar nuevo o editado se elimina fácilmente al incluir una cláusula where en el generador de consultas del campo de entidad, por ejemplo,->where("h.enabled=1"). Sin embargo, al hacerlo, la propiedad deshabilitada se establece ennull. De ahí la necesidad de retener el valor de alguna manera.

La solución ideal sería un servicio para estos campos de entidad de atributo que mostraría valores y retendría si está habilitado es no.

He intentado usar un detector de eventos, un campo oculto,choice_attr, modificando la plantilla de formulario y el tema del formulario, todo en vano. Por ejemplo, un campo oculto es texto cuando se requiere un campo de entidad. Esto no significa que no se pueda hacer, solo que no me he topado con el método adecuado.