Sí, usted puede hacer esto.
Tenemos un componente que tiene un concepto de "Planes", utiliza la misma vista para diferentes niveles de acceso, pero hace que los campos sean accesibles o no dependiendo de los grupos de usuarios.
Entonces, para aquellos usos que pueden "Ejecutar" un plan pero no editarlo, desactivamos "un montón de campos". Dependiendo del tipo de campo, esto puede significar establecer varios atributos de campo, p. Ej.
$this->form->setFieldAttribute('name', 'class', 'readonly');
$this->form->setFieldAttribute('name', 'readonly', 'true');
$this->form->setFieldAttribute('description', 'class', 'readonly');
$this->form->setFieldAttribute('description', 'disabled', 'true');
$this->form->setFieldAttribute('description', 'type', 'text');
$this->form->setFieldAttribute('published', 'class', 'readonly');
$this->form->setFieldAttribute('published', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'class', 'readonly');
$this->form->setFieldAttribute('publish_up', 'readonly', 'true');
$this->form->setFieldAttribute('publish_up', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_up', 'filter', 'user_utc');
$this->form->setFieldAttribute('publish_down', 'class', 'readonly');
$this->form->setFieldAttribute('publish_down', 'readonly', 'true');
$this->form->setFieldAttribute('publish_down', 'format', '%Y-%m-%d %H:%M:%S');
$this->form->setFieldAttribute('publish_down', 'filter', 'user_utc');
Entonces, dependiendo de cuál sea su myReadOnlyCode
campo, puede hacerlo configurando uno o más de los atributos como se muestra arriba, por ejemplo, si es solo una entrada de texto estándar:
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');