2012-12-05 13 views
5

मैं सिद्धांत ओआरएम और सिम्फनी में एक पेजिनेशन विधि का उपयोग करना चाहता हूं। KnpPaginatorBundle सरल और उपयोग करने में आसान लग रहा है। मैं डॉक्टर रिपॉजिटरीज का भी उपयोग करता हूं क्योंकि प्रश्नों का आसानी से उपयोग और परीक्षण किया जा सकता है।मैं सिम्फनी 2 में सिद्धांत के साथ कुशलतापूर्वक पेजिनेट का उपयोग कैसे कर सकता हूं?

यह बंडल अन्य लोगों की तरह काम करता है। इसे प्रश्न निर्माता को पैरामीटर के रूप में चाहिए। क्या प्रत्येक रिपोजिटरी को पैरामीटर को पैरामीटर (या शून्य) के रूप में देने से बेहतर करने का कोई बेहतर तरीका है? मैं हर क्वेरी परिणाम को पगेट नहीं करना चाहता हूं इसलिए मुझे नहीं लगता कि वर्णित समाधान सबसे अच्छा है और मैं परेशानियों की तलाश में हूं।

+3

प्रदर्शन के संदर्भ में, डेटाबेस स्तर पर परिणामों को पगेट करना बेहतर होता है, इसलिए आप ऑब्जेक्ट्स के परिणामों को मैप करने के ऊपरी हिस्से से बच सकते हैं, नेटवर्क यातायात को कम कर सकते हैं और आपके डेटाबेस सर्वर को कई रिकॉर्ड पढ़ने/फ़िल्टर करने की आवश्यकता नहीं है। मुझे यकीन नहीं है कि यह बंडल कैसे काम करता है, लेकिन आप जांच सकते हैं कि कौन से प्रश्न निष्पादित किए गए हैं और देखें कि क्वेरी पर अंकन होता है या नहीं। अगर ऐसा होता है, तो आप जाने के लिए अच्छे हैं। यदि आप एक ही प्रश्नों को और अधिक नहीं बनाना चाहते हैं, तो उन्हें एक संग्रह पर परिभाषित करें http://symfony.com/doc/2.0/book/doctrine.html#custom-repository-classes – Xocoatzin

+0

मैं उल्लेख करना भूल गया, अगर आप डेटाबेस स्तर पर पेजिनेट करते हैं, आपको सभी रिकॉर्ड्स गिनने की आवश्यकता होगी ताकि आप गणना कर सकें कि कितने पेज हैं। आप इसके लिए कैश का उपयोग कर सकते हैं या इससे बचने के लिए अपनी मेज की लंबाई का ट्रैक किसी अन्य तरीके से ट्रैक कर सकते हैं। – Xocoatzin

+0

बंडल https://github.com/KnpLabs/knp-components –

उत्तर

2

मुझे लगता है कि ऐसा करने के लिए दो बंडलों पता:

दोनों पृष्ठ पर अंक लगाना कर सकते हैं ORM/क्वेरी या ORM/QueryBuilder (और अधिक)।

+0

मुझे वास्तव में दूसरे में दिलचस्पी है, लेकिन मुझे PostgreSQL एकीकरण की आवश्यकता है। यह आपके बंडल द्वारा समर्थित क्यों नहीं है? – sentenza

संबंधित मुद्दे