Как добавить поле узла в таблицу базы данных в пользовательском модуле


Когда я пишу свой собственный пользовательский модуль и разрабатываю таблицу базы данных, если я хочу использовать поле nid для ссылки на узел, потому что я хочу, чтобы мой модуль добавлял что-то к каждому узлу, как я должен реализовать это в файле mymodule.install модуля?

Author: Chris Cohen, 2011-04-14

1 answers

Большую часть времени вы, вероятно, захотите использовать API полей (модуль CCK в D6), а не добавлять пользовательские таблицы или изменять узел самостоятельно.

Добавление пользовательских таблиц было очень простым способом.

Если вы хотите это сделать, вам нужно будет определить свои таблицы с помощью hook_schema() а затем в вашем крючке mymodule_install() вы можете вызвать drupal_install_schema() это должно создать новую таблицу, которая представляет ваш модуль.

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

Можно изменить таблицы других модулей, но я думаю, что это должно быть рассмотрено в другом вопросе.

 1
Author: Jeremy French, 2011-04-14 09:48:20