nodeapi insert和presave

时间:2010-08-19 04:56:51

标签: php drupal drupal-6

我有一个最奇怪的故障。我正在使用nodeapi并定位故事节点类型。我在insert案例之前有presave个案,其中presave代替update

switch ($op){
    case 'insert':
       //do some stuff
    break;
    case 'presave':
       //do some stuff
    break;
}

奇怪的是,在创建故事节点时,presave块会运行。我认为insert应该启用,然后由于break而退出,presave根本不会运行。出于某种原因,presave正在节点创建时运行。

1 个答案:

答案 0 :(得分:4)

presave是节点保存过程的一部分:它总是在节点保存到数据库之前被调用。

$node(在首次创建节点时调用)或insertupdate期间将其保存到数据库之前,需要更改新presave对象时使用它在更新现有节点时调用。)

因此,在您的情况下,首次创建节点时,会调用insert,然后调用{{1}}。