2010-08-19 32 views
1

我有最奇怪的故障。我正在使用nodeapi并定位故事节点类型。在presave的情况下,我有insert的情况,其中使用presave代替updatenodeapi insert and presave

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

奇怪的是,正在创建一个故事节点时,该presave块运行。我认为insert应该踢进来,然后它会退出,因为breakpresave根本不会运行。出于某种原因,presave正在节点创建时运行。

回答

4

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

,当你想你在insert将其保存到数据库之前(当现有节点更新都会调用)(首次创建节点时被调用)或update改变新$node对象它的使用。

因此,在您的情况下,当第一次创建节点时,调用presave,然后insert