Почему TYPO3 Extension Builder не генерирует внешние ключи?
Я установил некоторые отношения между моделями, но в коде SQL нет только столбцов FK для значения ключа.
Кто-нибудь может мне помочь?
Почему TYPO3 Extension Builder не генерирует внешние ключи?
Я установил некоторые отношения между моделями, но в коде SQL нет только столбцов FK для значения ключа.
Кто-нибудь может мне помочь?
Цитата из Карцена Дамбекалнса
Это полусознательное дизайнерское решение. Просто найдите дату, когда ограничения внешнего ключа были введены в MySQL, и сравните с датой, когда TYPO3 «родился».
Конечно, было бы здорово добавить такие ссылки, тем более, что MySQL всегда может их обработать, даже если базовый механизм хранения их не обрабатывает (в этом случае они будут просто проигнорированы).
(источник)
До сих пор ничего не изменилось, поэтому вам нужно создать внешние ключи самостоятельно после моделирования.
Ответ на комментарий:
как вы справились с отношениями между двумя таблицами? например, у меня есть таблица people, которая относится к таблице house со столбцом housenr
Конечно, это зависит от типа отношения (1:n
, n:1
, m:n
и т. д.), и Builder отлично поддерживает создание отношений в инструменте моделирования. Имейте в виду, что внешние ключи НЕ требуются для сохранения отношений в TYPO3.
Некоторые правила описаны в разделе документации TCA, т.е. в указанном случае вы можете использовать select
или тип group (with internal_type)
поля. Для отношения «многие ко многим» вам также необходимо создать таблицу MM. Если вы будете следовать этим документам, вы можете быть уверены, что в обычной форме редактирования бэкенда они будут обработаны должным образом.
Как упоминалось ранее, Extension Builder поддерживает создание различных типов отношений в своем инструменте моделирования щелчок-щелчок, и стоит потратить некоторое время, чтобы поиграть с ним, чтобы увидеть, как отношения разных типов обрабатываются в TYPO3. Он использует те же правила, что и при создании отношений в расширениях pre-extbase. Более того, Builder добавляет в модели необходимые методы, т.е. для getting
, attaching
и detaching
объектов ММ данного поля отношения, поэтому очень важно смоделировать все ваши отношения в начале. В другом случае вам нужно будет написать эти методы вручную (что скучно)