Да, ты можешь это сделать.
У нас есть компонент, имеющий концепцию «Планы», он использует одно и то же представление для разных уровней доступа, но делает поля доступными или нет в зависимости от групп пользователей.
Поэтому для тех применений, которые могут «запускать» план, но не редактировать его, мы выключаем «кучу» полей. В зависимости от типа поля это может означать установку нескольких атрибутов поля, например
$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');
Таким образом, в зависимости от вашего myReadOnlyCode
поля вы можете сделать это, установив один или несколько атрибутов, как показано выше, например, если это просто стандартный ввод текста:
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');