Сайт ↗
Разделы документации
UI интерфейс · 0.8.1

Content / Связи: настройка и редактирование

Выберите N:1, 1:N или N:N, задайте подписи записей и правила внешнего ключа.

На этой странице

Выберите направление связи

Откройте сущность в Content. Начните создание через Create relation в Relation settings или через Add field → Relation. Выберите тип связи в общей панели, затем заполните Basic settings и Advanced settings. При переключении вкладок введённые значения сохраняются.

Тип Пример Где находится связь
Many-to-one · N:1 Product принадлежит Category FK-поле у Product
One-to-many view · 1:N Category показывает Products Обратный вид существующего FK Product
Many-to-many · N:N Product имеет Tags Канонический владелец и join table

N:1: товар и категория

  1. Создайте Product и Category с primary key; у Category добавьте title.
  2. В Product откройте Create relation → Many-to-one.
  3. Выберите Category в Target entity.
  4. Укажите Field name categoryId и Relation name category.
  5. Выберите Display field title, чтобы видеть название категории вместо технического ID.
  6. Выберите Required или Optional.
  7. При необходимости включите Show inverse collection, задайте products и Inverse display field из Product.
  8. Нажмите Finish.

В Display field выбирается подпись целевой Category, в Inverse display field — подпись Product. Настраивайте их отдельно: название категории нужно в форме товара, а название товара — в обратном списке категории.

Ограничения базы

Откройте Advanced, если нужно настроить проверку внешнего ключа (Enforce foreign key) и поведение при удалении или изменении целевой записи (On delete, On update).

Значение Смысл
On delete: Restrict Не удалять целевую запись, пока на нее ссылаются
On delete: Set null Очистить необязательную ссылку; для Required недоступно
On update: Restrict / Cascade Поведение ссылки при изменении целевого ключа

1:N: обратная коллекция

Для One-to-many view используйте уже существующую связь в обратную сторону. Например, чтобы показать товары в Category, выберите Target entity Product и Owning relation Product.category. Затем укажите имя коллекции и поле для подписи записей. Новый FK при этом не создаётся.

Если подходящей владеющей связи пока нет, интерфейс сообщит об этом. Сначала создайте Product.categoryId. Вторая независимая коллекция не заменит отсутствующий внешний ключ.

N:N: товары и теги

В Product выберите Many-to-many и цель Tag. Назовите связь tags, задайте Display field и, если нужен просмотр с обратной стороны, вид products. В Advanced укажите Join table и имена primary key исходной и целевой сущности. Это ключи самих сущностей, не произвольные названия колонок промежуточной таблицы.

У связи остаётся один владелец. В его форме системы администрирования можно менять набор связанных записей; с обратной стороны доступен просмотр. Для обратного списка задайте Inverse display field, чтобы вместо идентификаторов видеть понятные подписи.

Редактирование и удаление

Для изменения нажмите тег связи в Relations. N:1 откроет настройки поля-владельца, коллекция — собственный редактор. Из обратного представления можно перейти к владельцу. При редактировании существующей inverse-коллекции форма подставит её имя и подпись. Если выключить inverse и нажать Finish, это представление будет удалено из модели.

Удаление через Delete требует отдельного подтверждения и не сохраняет остальные правки формы. Если связь использует проекция или другая часть модели, сначала устраните зависимости. После Finish перейдите в Generate и проверьте, как изменятся БД и API.

Дополнительно: связи через CLI.