मैं एक सिम्फनी 2 प्रोजेक्ट पर काम कर रहा हूं और मैंने एक आसान पेजिनेशन सिस्टम बनाने के लिए केएनपीपीजिनेटरबंडल का उपयोग करने का निर्णय लिया। इसलिए मैंने एक उत्पाद इकाई बनाई और मैं इंडेक्स एक्शन एक्शन (सीआरयूडी कमांड द्वारा जेनरेट) में पेजिनेटर जोड़ना चाहता हूं।डॉक्टर रेपोजिटरी का उपयोग करके परिणामों को पगनेट करने के लिए केएनपीपीजिनेटरबंडल का उपयोग कैसे करें?
// Retrieving products.
$em = $this->getDoctrine()->getManager();
//$entities = $em->getRepository('LiveDataShopBundle:Product')->findAll();
$dql = "SELECT a FROM LiveDataShopBundle:Product a";
$entities = $em->createQuery($dql);
// Creating pagnination
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$entities,
$this->get('request')->query->get('page', 1),
20
);
यह ठीक काम करता है लेकिन मैं सीधे नियंत्रक में क्वेरी बनाने के बजाय उत्पाद की भंडार का उपयोग करना चाहता हूं। मैं उसे कैसे कर सकता हूँ ? वास्तव में, सीधे पेजिनेट ऑब्जेक्ट में परिणामों का संग्रह जोड़ना बहुत धीमा है क्योंकि यह सभी उत्पादों को लोड करता है तो फिर ऐरेकोलेक्शन को पगेट करता है।
अग्रिम धन्यवाद।
K4
मैं भी इस प्रदर्शन मुद्दा देखा। समस्या यह है कि इस बंडल को अंकन उत्पन्न करने के लिए पूरे सरणी संग्रह की आवश्यकता होती है। यदि आप आंशिक परिणाम प्रदान करते हैं, तो पेजिनेशन में पृष्ठों की गलत संख्या होगी क्योंकि यह पूरे संग्रह से गणना की जाती है – Chopchop