मुझे डॉक्टर मॉडल hydrate()
विधि के साथ एक छोटी सी समस्या है। मैं तो जैसे किसी दिए गए सरणी से conrete मॉडल की एक वस्तु हाइड्रेट करने के लिए इस विधि का उपयोग:सिद्धांत 1.2 हाइड्रेट विधि - मॉडल ऑब्जेक्ट के लिए सरणी
$model = new Doctrine\Model\Model;
$model->hydrate($model_array);
सब कुछ सही काम करता है जब नेस्ट उप मॉडल withou सरल वस्तुओं hydrating। अब समस्या यह है कि मुझे हाइड्रेट (इस विधि का उपयोग करके) एक ऑब्जेक्ट है जिसमें नेस्टेड ऑब्जेक्ट्स हैं (और उनमें से कुछ ने नेस्टेड ऑब्जेक्ट्स भी हैं)।
यदि मैं HYDRATE_RECORD
का उपयोग कर रहा था तो यह ठीक होगा लेकिन क्वेरी से सभी रिकॉर्ड ऑब्जेक्ट्स के रूप में वापस लौटाए जाएंगे जिसका अर्थ है कि अधिक मेमोरी खपत। इसलिए मैं और मांग पर हाइड्रेट का उपयोग कर रहा हूं जो एक वस्तु के लिए ठोस सरणी है।
मान लें कि मेरे पास एक मॉडल ए है जिसमें मॉडल एबी, एसी (एक से कई तक) घोंसला है, एडी और एसी के पास एक और नेस्टेड मॉडल एसीई है।
A Array (
...
ab Array (...)
ac Array (
AC Array (
...
ace Array (...)
)
AC Array (
...
ace Array (...)
)
...
)
ad Array (...)
)
आम तौर पर हाइड्रेट उपयोग करने के बाद मुझे लगता है है कि यह मेरी वस्तु होगा::
A Object {
...
ab Object { ... }
ac Array (
AC Object {
...
ace Object { ... }
}
AC Object {
...
ace Object { ... }
}
...
)
ad Object { ... }
}
लेकिन बजाय इस बात का है कि मैं इस संरचना मिलती है:
एक सरणी केprint_r
के बाद हम इस संरचना देख सकते हैं
A Object {
...
ab Array (...)
ac Array (
AC Array (
...
ace Array (...)
)
AC Array (
...
ace Array (...)
)
...
)
ad Array (...)
}
तो केवल मुख्य मॉडल किसी ऑब्जेक्ट में परिवर्तित हो गया। क्या आप इस बारे में जानते हैं कि सभी नेस्टेड मॉडल सरणी को परिणामस्वरूप किसी ऑब्जेक्ट में कैसे परिवर्तित किया गया है?
और नहीं, मैं डीबी से पूछताछ करते समय HYDRATE_RECORD
का उपयोग नहीं कर सकता।
@ j0k मुझे उत्तर के लिए धन्यवाद क्यों नहीं देना चाहिए? – shadyyx
साइट नीति, कोई साइन ऑफ नहीं, धन्यवाद, वास्तविक प्रश्न में उस तरह की चीज - क्योंकि यह सवाल का हिस्सा नहीं है। टिप्पणियों में ठीक है। – Orbling
देखें [यह धागा] (http://meta.stackexchange.com/q/2950/182741)। – j0k