मुझे एक इकाई पर फ़ील्ड के लिए एक नया मान सहेजने की आवश्यकता है और मैं सोच रहा था कि क्या Unit_metadata_wrapper का उपयोग करना संभव है या क्या यह केवल मौजूदा मूल्य सेट करना संभव है?
$wrapper->vimn_related_subjects[] = $value;
?
मुझे एक इकाई पर फ़ील्ड के लिए एक नया मान सहेजने की आवश्यकता है और मैं सोच रहा था कि क्या Unit_metadata_wrapper का उपयोग करना संभव है या क्या यह केवल मौजूदा मूल्य सेट करना संभव है?
$wrapper->vimn_related_subjects[] = $value;
?
जवाबों:
जब बहु-मूल्य वाले फ़ील्ड के साथ काम करते हैं, तो संबंधित इकाई मेटाडेटा आवरण ऑब्जेक्ट EntityListWrapper का एक उदाहरण है (उपलब्ध तरीकों को देखने के लिए एपीआई ब्राउज़ करने के लिए यह एक अच्छा विचार हो सकता है। यह भी ध्यान दें कि यह वर्ग Arrayccess इंटरफ़ेस को लागू करता है )।
तो EntityListWrapper में नए मूल्यों को जोड़ने का सबसे सरल तरीका "[]" ऑपरेटर का उपयोग करके है:
$wrapper->field_example[] = $new_value;
यह एक नई प्रविष्टि बनाता है और इसे मान प्रदान करता है। इस विधियों के साथ, डेल्टा (मूल्य की सूची के भीतर ऑफसेट) स्वचालित रूप से बनाया गया है। यदि आप चाहें तो आप स्वयं भी ऑफसेट सेट कर सकते हैं। निम्नलिखित तीन विधियों में से कोई भी समतुल्य है:
$wrapper->field_example[$delta] = $new_value;
$wrapper->field_example->offsetSet($delta, $new_value);
$wrapper->field_example->get($delta)->set($new_value);
यदि तीन डेल्टा पहले से मौजूद हैं, तो सभी तीन मामलों में यह मानों को अधिलेखित कर देगा और यदि नहीं तो एक नई प्रविष्टि बनाएँ।
आप सीधे फ़ील्ड पर ही मान की एक सरणी सेट कर सकते हैं। दोनों विधियाँ समतुल्य हैं:
$value = array
0 => array('property_example' => 'hello'),
1 => array('property_example' => 'world')
);
$wrapper->field_example = $value;
$wrapper->field_example->set($value);
हालाँकि इसके लिए आपको उस क्षेत्र की आंतरिक संरचना को जानना होगा जिसे आप असाइन कर रहे हैं क्योंकि आप क्षेत्र के मेटाडेटा आवरण का उपयोग नहीं कर रहे हैं।
अंत में आप एक बहु मान फ़ील्ड को खाली मान पर सेट करके खाली कर सकते हैं। सभी तीन विधियाँ समतुल्य हैं:
$wrapper->field_example->set();
$wrapper->field_example = array();
$wrapper->field_example = NULL;
$w->field_allowed_regions->set(array(null));
एकमात्र समाशोधन विकल्प है जिसने मेरे बहु-मूल्य वाले टैक्सोनॉमी संदर्भ क्षेत्र के लिए काम किया है।