Tak, możesz to zrobić.
Mamy komponent, który ma pojęcie „Plany”, używa tego samego widoku dla różnych poziomów dostępu, ale udostępnia pola lub nie zależy od grup użytkowników.
Tak więc dla tych zastosowań, które mogą „uruchomić” plan, ale go nie edytować, wyłączamy kilka pól. W zależności od typu pola może to oznaczać ustawienie kilku atrybutów pola, np
$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');
Tak więc, w zależności od tego, jakie jest twoje myReadOnlyCode
pole, możesz to zrobić, ustawiając jeden lub więcej atrybutów, jak pokazano powyżej, np. Jeśli jest to zwykłe wprowadzanie tekstu:
$this->form->setFieldAttribute('myReadOnlyCode', 'class', 'readonly');
$this->form->setFieldAttribute('myReadOnlyCode', 'readonly', 'true');