Field_get_items का "सेट" संस्करण?


9

एक इकाई से फ़ील्ड आइटम पुनर्प्राप्त कर सकते हैं

// Find all terms on $node in field 'field_tags'.
$terms = field_get_items('node', $node, 'field_tags');

लेकिन क्या रिवर्स, कोर, या अन्यथा करने का एक सुविधाजनक तरीका है?

// Attach new term $term to $node in field 'field_tags'.
$term = taxonomy_term_load($tid);
$node = field_set_items('node', $node, 'field_tags', 'taxonomy_term', $term);
node_save($node);

मैं मैन्युअल रूप से $ टर्म असाइन करने के झंझट से बचना चाहूंगा, डेवेल में जाकर देखें कि ऐरे स्ट्रक्चर कैसा दिखता है और फिर एरे को हाथ से बनाएं, क्योंकि यह कभी-कभी गैर-तुच्छ होता है।

मुख्य कतार में एकमात्र मुद्दा मैं पा सकता था कि अस्पष्ट रूप से समान था जो कि क्षेत्र भाषा एपि डीएक्स के बारे में था ।

जवाबों:


6

नहीं, ऐसा कोई फंक्शन नहीं है।

इकाई क्षेत्रों के लिए भाषा समर्थन में मेरी टिप्पणी देखें ।


1
धन्यवाद बरदीर। मैं उम्मीद कर रहा था कि आप दिखाएंगे;) और मुझे डर भी था कि आप ऐसा कहेंगे। आपकी टिप्पणी में कोड के साथ समस्या यह है कि बहुत सारे क्षेत्रों के लिए, 'मूल्य' अपर्याप्त या सिर्फ सादा गलत हो सकता है।
लेटेरियन

field_get_items () उस के साथ आपकी मदद नहीं करता है, यह उन मदों की एक सरणी देता है जिनमें मूल्य होता है। या जो भी क्षेत्र प्रकार परिभाषित करता है। सार करने का कोई उपाय नहीं है।
बेर्दिर

उदाहरण के लिए, field_get_items () रिटर्न ऐरे (सरणी ('tid' => 123))। आपके कोड को यह पता होना चाहिए कि फ़ील्ड_टैग्स एक टैक्सोनॉमी टर्म रेफ़रेंस है और इसमें टिड कुंजी सेट है और यह टैक्सोनॉमी टर्म के लिए एक टैली है।
बर्दिर

दिए गए लिंक के अनुसार टिप्पणियां अब उस पृष्ठ पर दिखाई नहीं देती हैं।
जुनैद

टिप्पणियाँ अब चर्चा पृष्ठ पर हैं: drupal.org/node/1500308/discuss
Berdir

2

इस तरह के फ़ंक्शन के अस्तित्व के field_set_items()लिए, stdClassवस्तु को एक वर्गीकरण शब्द के रूप में पहचानने में सक्षम होने की आवश्यकता होगी , और इसे एक फ़ंक्शन पर भी मैप करें जो ऑब्जेक्ट को डीकोड कर सकता है और इसके बाहर फ़ील्ड सरणी बना सकता है।

चूंकि ऐसा करने के लिए कोई कोर फ़ंक्शन नहीं है, मुझे नहीं लगता कि यह आसान होगा।


यह बहुत परेशान करने वाला है कि कोई $ इकाई नहीं है-> Unit_type property (अभी तक) , लेकिन इसकी परवाह किए बिना, जिसे आसानी से मेरे उदाहरण कॉलबैक में जोड़ा जा सकता है। मैंने इसे प्रतिबिंबित करने के लिए प्रश्न को अपडेट किया।
सुस्ती

1
एक की कमी entity_typeवास्तव में समस्या IMHO नहीं है ... समस्या बिल्कुल वही है जो आपने अपने प्रश्न में जोड़ा है: "यह कभी-कभी गैर-तुच्छ है"। क्योंकि डेटा गैर-तुच्छ है, field_set_itemsजैसा कि आप चाहते हैं, काम करने के लिए , सिस्टम में प्रत्येक फ़ील्ड प्रकार को किसी ऑब्जेक्ट / मनमाना चर से डेटा सरणी को रिवर्स-इंजीनियर करने के तरीके का वर्णन करने के लिए कुछ प्रकार के इंटरफ़ेस को लागू करने की आवश्यकता होगी।
क्लाइव

2

यद्यपि यह कुछ समय जटिल सरणी संरचना के निर्माण में मदद नहीं करता है, फिर भी मैं देखता हूं कि मैं कुछ हद तक ड्रुपल 8 में पेश किया गया हूं। शायद इसे भविष्य में और बढ़ाया जाएगा। :)

खेतों, संपत्तियों और भाषा की जानकारी तक पहुँचने के लिए नया सरल एपीआई उपलब्ध है

लिंक किए गए पृष्ठ से उदाहरण का उपयोग:

<?php
// Change a field value.
$body = $comment->get('comment_body');
$body[0]['value'] = 'This is actually a perverted tango';
$comment->set('comment_body', $body);
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.