响应节点删除。
这是一个特定于节点类型的挂钩,仅针对受影响的节点类型调用。有关详细信息,请参阅 节点 API 挂钩。
使用hook_node_delete ()响应所有节点类型的节点删除。
这个钩子是在hook_node_delete () 调用之前和field_attach_delete () 调用之前从node_delete_multiple () 调用的。
请注意,调用此挂钩时,更改尚未写入数据库,因为数据库事务仍在进行中。直到删除操作完全完成并且node_delete_multiple () 超出范围时,事务才最终确定。此时您不应依赖数据库中的数据,因为它尚未更新。您还应该注意,从此挂钩执行的任何写入/更新数据库查询也不会立即提交。检查node_delete_multiple () 和 db_transaction () 以获取更多信息。
参数
$node:被删除的节点。
相关话题
文件
模块/
节点
/node.api.php,第 1063 行
Node 模块提供的钩子。
代码
function hook_delete($node) {
db_delete('mytable')
->condition('nid', $node->nid)
->execute();
}
评论
如何删除所有内容
如何删除所有内容
目前Drupal核心确实
目前 Drupal 核心不提供任何钩子来在数据库中插入/更新/删除节点/实体后执行操作。因此,例如,您不能在插入节点后发送提及该节点的电子邮件,因为 Drupal 使用 SQL 事务,并且在调用 hook node presave 时节点尚未完全写入数据库,因此如果出于任何原因回滚事务,用户会收到虚假邮件。
因此 Hook Post Action 模块引入了几个新的 Drupal 钩子来克服这个限制:
- hook_entity_postsave
- hook_entity_postinsert
- hook_entity_postupdate
- hook_entity_postdelete
- hook_node_postsave
- hook_node_postinsert
- hook_node_postupdate
- hook_node_postdelete
https://drupal.org/project/hook_post_action
西纳萨莱克
感谢 sinasalek,我开始使用这个模块,我使用了 10 多个站点进行开发,感谢一个很棒的模块,你节省了我的时间。
来自 https://api.drupal.org/api/drupal/modules%21node%21node.api.php/function/hook_delete/7.x