2009-06-01 15 views
8

Bu gibi bir kodum var:

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

print_r($node); 

Düğüm başarıyla oluşturuldu ve her şey iyi çalışıyor ... ama hiçbir şey save_node() 'dan döndü. Eski dokümanlar, $ nid döndürdüğünü belirtir. Bazı tartışmalar ve biletler, son Drupal sürümlerinde düğüm nesnesinin döndüğünü, ancak hiçbir şeyin geri gelmediğini gösterir (ve $ node-> nid boş).

Peki, yeni oluşturulan düğümün nidini nasıl bulabilirim?

cevap

22

Tamam, sonunda bunu anladım (ve oğlum aptalca hissediyorum).

node_save şimdi mevcut düğüm nesnesi (zaten benim durumumda $ sayısında tanımlanan) çalışır ve sadece mevcut nesneye (diğerleri arasında) nid alanı ekler. Hiçbir şey iade edilmez, ancak node_save çalıştıktan sonra nid $ issue-> nid ile erişebilirim.

+0

Başkalarının hayal kırıklığına uğramasına yardımcı olmak için takip eden birini görmek her zaman harika. Bir yıl sonra teşekkür ederim! – wynz

0

Teşekkür ederiz! Bilmek çok güzel. Kendi sorunuzu cevapladığınız ve paylaştığınız için (örneğin, kendim gibi) çok teşekkürler! Güzel çözüm!

2 ipuçları Katkılarınız için teşekkürler: düğümü başarıyla kaydedildi kullanıcıyı bilgilendirmek için
// kullanım drupal_set_message()
// hatayı yakalamak için kaydetmeden önce node_submit() kullanarak deneyin mevcut olabilecek

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; 
İlgili konular