Создать сущность
Выберите модуль в Content и создайте сущность. Задайте Entity name, например Product, и Entity title — например, «Товары». Техническое имя пишется в PascalCase с заглавной буквы. Подпись нужна для навигации и технические ключи не меняет.
| Настройка | Что выбрать |
|---|---|
| Module | Обязательная логическая группа сущности |
| Kind: persistent | Записи хранятся в собственной таблице БД |
| Kind: virtual | Read-only проекция существующих persistent-данных |
| DB table | Для persistent: имя таблицы, например products |
| Record editor | Right panel или Separate page для создания/редактирования записей |
Если выбрали persistent, добавьте поддерживаемый primary key через Add field → Identifier. Для virtual новая таблица не нужна: выберите источник и поля существующих данных в её отдельных настройках.
CRUD и отображение в админке
В CRUD and UI exposure выберите, что должно уметь приложение. Create, Read, Update, Delete включают операции, List page и Form page — страницы системы администрирования. Например, справочнику только для чтения достаточно Read и List page; Create, Update и Delete можно выключить. Вкладка Access выдаёт доступ лишь к уже включённым операциям. Если операция не генерируется, одной настройкой доступа её не добавить.
Выберите Record editor по тому, как удобнее редактировать записи: Right panel открывает боковую панель, Separate page — отдельную страницу. У virtual форм создания и редактирования нет.
Сохраните настройки кнопкой Finish и перейдите в Generate. Чтобы увидеть результат в приложении, сгенерируйте файлы и обновите запущенный проект.
Перенос между модулями
Чтобы перенести сущность, смените Module в Entity settings. Перед подтверждением учтите: адреса /api/admin/v1/<module>/… и /api/external/v1/<module>/… изменятся, и их клиентам потребуется обновление. Значения доступа и принадлежность custom-кода сохраняются. Смена логической группы не означает перенос всех файлов сущности.
Изменение типа сущности
При смене Kind или источника проекции может потребоваться заменить настройки. Прочитайте подтверждение: набор полей persistent и выбранные поля virtual устроены по-разному. Если нужен ответ только для чтения поверх существующих данных, обычно проще оставить persistent и создать отдельную virtual-сущность.
Удаление
Откройте Delete в настройках сущности и сначала изучите зависимости. Если persistent-сущность уже сгенерирована, выберите, что должно произойти с таблицей и данными:
| Вариант | Результат |
|---|---|
| Keep table and data | Удалить сущность из генерируемого приложения, оставить таблицу и записи |
| Delete table and data | Создать миграцию удаления; данные исчезнут при ее применении |
Если у сущности есть custom-файлы, редактор покажет их и запросит подтверждение архивации. При Generate они переместятся в custom-archive/<operation-id> и сохранятся вне активных исходников. Устраните известные ссылки на удалённую сущность в оставшемся коде. Внешние клиенты и произвольный SQL автоматически не исправляются.
Дополнительно: сущности через CLI, переименование и удаление.