2009-06-01 3 views
8

मैं इस तरह कोड है:

... setup $issue object ... 
$node = node_save($issue); 

print_r($node); 

नोड सफलतापूर्वक बनाया गया है, और सब कुछ ठीक काम करता है ... लेकिन कुछ भी नहीं है यह() save_node से लौट आए। पुराने दस्तावेज़ इंगित करते हैं कि यह $ nid देता है। कई चर्चाओं और टिकटों से संकेत मिलता है कि हाल के ड्रूपल संस्करणों में नोड ऑब्जेक्ट लौटाया गया है, लेकिन मुझे कुछ भी वापस नहीं मिलता है (और $ node-> nid खाली है)।

तो, मैं नव निर्मित नोड के निदान को कैसे ढूंढूं?

उत्तर

22

ठीक है, अंत में यह एक बाहर निकाला गया (और लड़का मुझे मूर्खतापूर्ण महसूस करता है)।

node_save अब मौजूदा नोड ऑब्जेक्ट (पहले से ही मेरे मामले में $ समस्या में परिभाषित) पर चल रहा है, और केवल मौजूदा ऑब्जेक्ट में निड फ़ील्ड (दूसरों के बीच) जोड़ता है। कुछ भी वापस नहीं किया जाता है, लेकिन मैं node_save चलाने के बाद $ nid-> nid के साथ निड तक पहुंच सकता हूं।

+0

दूसरों को कुछ निराशा बचाने में मदद करने के लिए किसी को देखने के लिए हमेशा महान होता है। एक साल बाद धन्यवाद! – wynz

0

धन्यवाद! जानना बहुत अच्छा है। अपने स्वयं के प्रश्न का उत्तर देने और दूसरों को साझा करने के लिए धन्यवाद (जैसे स्वयं) सीख सकते हैं! अच्छा समाधान!

2 सुझावों योगदान के लिए धन्यवाद:
// उपयोग drupal_set_message() उस नोड सफलतापूर्वक बचा लिया गया था उपयोगकर्ता को सूचित करने के
// त्रुटि को पकड़ने के लिए सहेजने से पहले node_submit() का उपयोग करके देखें कि मौजूद हो सकता है

if ($_newnode = node_submit($_newnode)) { 
    node_save($_newnode); 
    drupal_set_message(t("Node ".$_newnode->title." added correctly")); 
    $return = $_newnode->uid; 
} else { 
    $return = 0; 
    drupal_set_message(t("Node ".$_newnode->title." added incorrectly"), "error"); 
} 

return $return;