Как EE удаляет записи? - PullRequest
       4

Как EE удаляет записи?

1 голос
/ 19 января 2012

Я пытаюсь выяснить, как ExpressionEngine удаляет записи.

Я написал логоподобное расширение, которое отслеживает, когда создается запись.Когда я удаляю запись через раздел редактирования EE, эта запись также удаляется из отдельной таблицы, которую я создал для своего расширения.

Как EE узнает, как удалить строку из моей таблицы при удалении записи?Одним из столбцов в моей таблице является `entry_id`.Казалось бы, EE автоматически проверяет все таблицы на наличие столбца entry_id и, если значение соответствует удаляемому значению, строка удаляется.Кто-нибудь может подтвердить это?

Это объясняет, почему мне не пришлось создавать функцию, которая подключается к delete_entries_loop для достижения этой функции.

1 Ответ

0 голосов
/ 19 января 2012

Это очень странно. Такое поведение было бы безумным, если бы это действительно было так!

Глядя на метод delete_entry() API Channel Entries, удаление очень конкретно ограничено:

  • channel_titles
  • channel_data
  • category_posts
  • Отношения
  • комментарии
  • comment_subscriptions
  • channel_entries_autosave
  • entry_versioning

Также вызывается API Channel Fields, чтобы позволить типам полей удалять то, что им нужно, из их собственных таблиц базы данных на основе удаляемой записи, но только если они содержат метод delete().

Я бы предложил включить выходной профилировщик, а затем запустить процедуру удаления, чтобы увидеть, какие запросы выполняются.

...