मैं कम से कम 2 बाएं जुड़ने के साथ एक जटिल अनुरोध को पगनेट करना चाहता हूं, लेकिन पेजिनेशन बंडल जिसका उपयोग मैं कर रहा हूं (एनपीपीग्नेशनबंडल) सिद्धांत को नहीं बता सकता है कि परिणाम कैसे गिनें (which is needed for the pagination process), और इस अपवाद को जारी रखें।सिद्धांत: बाएं के साथ अंकन
Cannot count query which selects two FROM components, cannot make distinction
यहां नमूने के सिद्धांत QueryBuilder के साथ बनाया गया अनुरोध है।
public function findGroupsByUser(User $user, $listFilter, $getQuery = false, $order = 'ASC')
{
$query = $this->createQueryBuilder('r')
->select('r as main,g')
->select('r as main,g, count(gg) as members')
->leftjoin('r.group', 'g')
->innerjoin('MyBundle:GroupMemberRel', 'gg', 'WITH', 'r.group = gg.group')
->addGroupBy('g.groupId')
->add('orderBy', 'g.name ' . $order);
if ($getQuery == true) {
return $query;
}
return $query->getQuery()->getResult();
}
तब मैं knp_paginator सेवा करने के लिए इस अनुरोध को अपवाद
$groupQuery = $this->em->getRepository('MyBundle:GroupMemberRel')->findGroupsByUser($user, $listFilter, true);
$paginator = $this->container->get('knp_paginator');
/* @var $groups Knp\Component\Pager\Pagination\PaginationInterface */
$groups = $paginator->paginate(
$groupQuery, $this->container->get('request')->query->get('page', 1), 10 /* limit per page */
);
कैसे एक जटिल अनुरोध से अधिक पृष्ठ पर अंक लगाना करने के लिए पर कोई विचार दे, और उसके बाद मुझे मिल गया है, मैं इस प्रयोग बहुत यकीन है कि -केस सामान्य है, पेजिनेशन के बाद मेरे परिणाम को हाइड्रेट नहीं करना चाहता।
पेजरफंटा के सिद्धांत ओआरएम एडाप्टर पक्षियों के प्रश्नों को संभालने में सक्षम होना चाहिए। https://github.com/whiteoctober/Pagerfanta – AdrienBrault
यह क्वेरी अजीब नहीं है, मुझे यकीन है कि इसे आसानी से knp paginator के साथ करने का कोई तरीका है, शायद मुझे knp पेजर –
पर गहराई से देखना चाहिए इस समस्या का सामना करना .. कोई समाधान? – tttony