Поля
Видимость полей
Управление отображением полей на разных страницах
Поля могут отображаться или скрываться на разных страницах: список записей (index), просмотр (detail), создание (create), редактирование (update) и экспорт (export).
Глобальное управление
show
Closure|bool|null $val = true → static
Показывает элемент на всех страницах.
hide
Closure|bool|null $val = true → static
Скрывает элемент на всех страницах. Аналог
show(false).showOn
string $place → bool
Проверяет видимость элемента в указанном пространстве. Используется системой для автоматической проверки.
Условное отображение
hideWhen
string $fieldName → static
Скрывает элемент, когда указанное поле не равно
true.showWhen
string $fieldName → static
Показывает элемент, когда указанное поле равно
true.condition
string $conditionBinding → static
Устанавливает условие отображения через привязку.
Text::make('name', 'Имя')
->hideWhen('user'),
Textarea::make('Описание питания', 'meta->meals_info')
->condition('$metaSpecifications.includes(\'meals\')'),
Подробнее о построении условий — на сайте FormKit.
Управление по страницам
Каждый метод show*/hide* принимает Closure|bool|null и может комбинироваться с другими:
| Метод | Страница | Действие |
|---|---|---|
showOnIndex() | Список записей | Показать |
hideOnIndex() | Список записей | Скрыть |
showOnDetail() | Просмотр записи | Показать |
hideOnDetail() | Просмотр записи | Скрыть |
showOnCreate() | Создание | Показать |
hideOnCreate() | Создание | Скрыть |
showOnUpdate() | Редактирование | Показать |
hideOnUpdate() | Редактирование | Скрыть |
showInForms() | Создание + Редактирование | Показать |
hideInForms() | Создание + Редактирование | Скрыть |
showInExport() | Экспорт | Показать |
hideInExport() | Экспорт | Скрыть |
Пример комбинирования
Textarea::make('Описание питания', 'meta->meals_info')
->hide() // Скрыть на всех страницах
->showOnIndex() // Включить в таблице записей
->showOnDetail() // Включить на странице просмотра
Ограничение видимости
onlyOnIndex
Closure|bool|null $val = true → static
Отображает поле только на странице со списком записей.
onlyInForms
Closure|bool|null $val = true → static
Отображает поле только на страницах форм.
showOnlyIn
array $spaces → static
Отображает поле только в указанных пространствах:
index, detail, update, create, export.hideOnlyIn
array $spaces → static
Скрывает поле только в указанных пространствах.
Text::make('description', 'Описание')
->showOnlyIn([
CanControlView::SPACE_INDEX,
CanControlView::SPACE_DETAIL,
])