मैं प्रोपेल 1.6 का उपयोग कर रहा हूं और मुझे यकीन नहीं है कि किसी ऑब्जेक्ट को कैसे प्राप्त करें (इसके "id" विशेषता मान को प्रोपेल ऑब्जेक्ट संग्रह से दिया गया है। मुझे प्रोपेल के दस्तावेज़ीकरण में सीधे जवाब नहीं मिला (PropelCollection methods लागू प्रतीत नहीं होता?)। उदाहरण के लिए: चलें कहते हैं कि मैं निम्नलिखित स्कीमा के साथ एक "व्यक्ति" तालिका है:ऑब्जेक्ट संग्रह से "id" द्वारा ऑब्जेक्ट कैसे प्राप्त करें?
<table name="person">
<column name="id" type="INTEGER" primaryKey="true" autoIncrement="true" required="true"/>
<column name="name" type="VARCHAR" size="100" required="true"/>
</table>
मैं "व्यक्ति" वस्तुओं का संग्रह प्राप्त करने के लिए निम्न क्वेरी कर: तब
$persons = PersonQuery::create()->find();
, मैं किसी दिए गए "आईडी" (उदाहरण के लिए "आईडी = 3" के साथ "व्यक्ति") के साथ "व्यक्ति" ऑब्जेक्ट ढूंढना चाहते हैं, डेटाबेस में नई क्वेरी बिना। मैं यह कैसे कर सकता हूं?
$persons->get(...?)?
दूसरे शब्दों में, मैं ऐसा नहीं करना चाहता हूँ:
$personX = PersonQuery::create()->findOneById(3);
प्रसंग:
मैं प्रदर्शन में सुधार करने के लिए एक डेटाबेस क्वेरी बनाने को रोकने के लिए चाहते हैं। , कि बहुत ही कुशल नहीं होगा, लेकिन आप इसे खोजने के लिए संग्रह के माध्यम से जा सकते हैं
foreach ($books as $book) {
$book['author_name'] = PersonQuery::create()->findOneById($book['author_id'])->getName();
}
आप 'array_filter के साथ एक और अधिक सुरुचिपूर्ण तरीके से यह कर सकते हैं()' :-) – Florent
@ j0k कर सकते हैं एक foreach पाश से बचने के लिए, लेकिन मुझे लगता है, जैसा कि आप सुझाव देते हैं, मैं इससे बच नहीं सकता। मुझे लगता है कि लूप के साथ जाने से कई डेटाबेस कनेक्शन बनाने से भी अधिक कुशल होगा। आपके उत्तर के लिए धन्यवाद! – RayOnAir
@Florent: मुझे यकीन नहीं है कि इस मामले में [array_filter] (http://php.net/manual/en/function.array-filter.php) फ़ंक्शन को कैसे कार्यान्वित किया जाए, लेकिन मैं जांच करूंगा ... धन्यवाद! – RayOnAir