2010-08-19 30 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