Drupal Insert Hook失败

时间:2011-10-06 22:32:32

标签: drupal insert drupal-7 hook

我有一个插入挂钩,只要用户添加节点就会捕获节点。 所以这是我的代码:

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

架构::

table_name(
     nid     int primary key not null
)

对drupal_write_record的返回值执行检查会导致FALSE。 db_query也不起作用。 var_dump确认所有字段都是它们应该的位置。

节点正确地插入到节点表中,但不是由我的安装文件中的模式定义的表(当然不是像我上面的模式那样写的 - nid被定义为int和所有其他相关的字段)。

有没有人知道发生了什么?

1 个答案:

答案 0 :(得分:1)

  1. 确保您的模块已安装并启用
  2. 确保您的模块名称明确命名为blah(或者您在_insert之前提出的任何内容
  3. 确保您正在使用正确的挂钩...如果您的模块不负责定义内容类型(即“节点”模块),那么您使用的是错误的。来自hook_insert的文档:“仅在定义节点内容类型的模块上调用此挂钩”。可能是您正在寻找hook_node_insert(),而是响应插入任何类型的节点。
  4. 当您在模块中实现任何挂钩时,请确保之后清除缓存,具体取决于您正在使用的Drupal版本,这些实现可能会被缓存以便更快地访问,并且在清除缓存之前不会被选中。< / LI>
  5. 检查您的自定义表是否确实存在于数据库中!如果没有抓住devel module,请安装它并访问/ devel / reinstall,您可以在其中调用模块的完全重新安装。
  6. 一旦你检查了那些仍然不能正常工作就会出现你的Drupal安装问题更大的问题...如果你的架构正如你所说的那样,那就是如果函数确实正在运行,则没有理由drupal_write_record()不起作用。