Drupal Вставить Крюк Неудачно - PullRequest
0 голосов
/ 07 октября 2011

У меня есть ловушка вставки, которая ловит узлы всякий раз, когда пользователь добавляет узел.Итак, вот мой код:

function blah_insert($node){
     $record = array(
            'nid' => (int) $node->nid
     );
     drupal_write_record('table_name', $record);
}

schema ::

table_name(
     nid     int primary key not null
)

Выполнение проверки возвращаемого значения drupal_write_record приводит к значению FALSE.db_query тоже не работает.var_dump подтверждает, что все поля находятся там, где они должны быть.

Узлы правильно вставляются в таблицы узлов, но не в таблицу, которая определяется схемой в моем установочном файле (не записывается какконечно, схема, которая у меня есть выше - nid определяется как int и все остальные соответствующие поля).

Кто-нибудь имеет представление о том, что происходит?

1 Ответ

1 голос
/ 07 октября 2011
  1. Убедитесь, что ваш модуль установлен и включен
  2. Убедитесь, что имя вашего модуля определенно названо blah (или что вы добавляете до _insert
  3. Убедитесь, чточто вы используете правильный хук ... если ваш модуль не отвечает за определение типа контента (то есть модуль 'узел'), то вы используете неправильный. Из документов hook_insert: "Этот хуквызывается только в модуле, который определяет тип содержимого узла ". Возможно, вместо этого вы ищете hook_node_insert(), который отвечает на вставку узла любого типа.
  4. Когда вы реализуете любойперехватчики в вашем модуле гарантируют, что вы впоследствии очистите кеш, в зависимости от того, какую версию Drupal вы используете, эти реализации могут быть кэшированы для более быстрого доступа и не будут извлечены, пока этот кеш не будет очищен.
  5. Проверьте, чтоВаша пользовательская таблица действительно существует в базе данных! Если не захватите модуль devel , установите его и посетите / devel / reinstall, где вы можете вызвать полную переустановку your module.

После того, как вы проверили их, если is все еще не работает, это симптом крупной проблемы с вашей установкой Drupal ... если ваша схема такая же, как выВы сказали, что выше, поэтому нет причины, по которой drupal_write_record() не будет работать, если функция действительно выполняется.

...