Si, puoi fare questo.
Abbiamo un componente che ha un concetto di "Piani", utilizza la stessa vista per diversi livelli di accesso, ma rende i campi accessibili o meno a seconda dei gruppi di utenti.
Quindi, per quegli usi che possono "eseguire" un piano ma non modificarlo, disattiviamo un gruppo di campi. A seconda del tipo di campo, ciò può significare l'impostazione di più attributi di campo, ad es
$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');
Quindi, a seconda di quale sia il tuo myReadOnlyCode
campo, puoi farlo impostando uno o più degli attributi come mostrato sopra, ad esempio se è solo un input di testo standard:
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');