cor*_*eyg 1 php controller symfony knppaginator knppaginatorbundle
用例:我想将搜索查询和结果总数存储到数据库中,这样我就可以看到人们正在搜索的内容在我的应用程序中不存在。
\n\n什么是有效的:我能够获取并存储查询,但我不知道如何获取搜索结果的总数。
\n\n这是来自控制器的代码示例。当我当前尝试此操作时,我得到以下信息
\n\n\n\n\n错误:可捕获的致命错误:类对象\n Knp\\Bundle\\PaginatorBundle\\Pagination\\SlidingPagination 无法\n 转换为字符串
\n
我尝试通过请求 $pagination[totalCount] 将 $pagination 像数组一样处理,但只是返回 null。
\n\n public function fpcAction(Request $request)\n {\n\n $query = dump($request->query->get(\'q\'));\n\n $finder = $this->container->get(\'fos_elastica.finder.app.product\');\n $page = $request->query->getInt(\'page\', 1);\n\n $paginator = $this->get(\'knp_paginator\');\n $results = $finder->createPaginatorAdapter($query);\n $pagination = $paginator->paginate($results, $page, 12);\n\n\n\n $searchmetrics = new SearchTerms();\n $searchmetrics->setSearchterm($query);\n $searchmetrics->setDate(time());\n\n // TODO: Need to get the total qty of search results for this specific query\n $searchmetrics->setResultsqty($pagination);\n\n $entityManager = $this->getDoctrine()->getManager();\n $entityManager->persist($searchmetrics);\n $entityManager->flush();\n\n\n return $this->render(\'default/search.html.twig\', [\'searchresults\' => $pagination, \'query\' => $query]);\n\n }\nRun Code Online (Sandbox Code Playgroud)\n\n这是在树枝模板上输出的变量转储:
\n\n "searchresults" => SlidingPagination {#1028 \xe2\x96\xbc\n -route: "search"\n -params: array:1 [\xe2\x96\xb6]\n -pageRange: 5\n -template: "@KnpPaginator/Pagination/sliding.html.twig"\n -sortableTemplate: "@KnpPaginator/Pagination/sortable_link.html.twig"\n -filtrationTemplate: "@KnpPaginator/Pagination/filtration.html.twig"\n #currentPageNumber: 1\n #numItemsPerPage: 12\n #items: array:12 [\xe2\x96\xb6]\n #totalCount: 8104\n #paginatorOptions: array:6 [\xe2\x96\xb6]\n #customParameters: []\n }\nRun Code Online (Sandbox Code Playgroud)\n
你应该做
$searchmetrics->setResultsqty($pagination->getTotalItemCount());
Run Code Online (Sandbox Code Playgroud)
事实上,$pagination是类的Knp\Bundle\PaginatorBundle\Pagination\SlidingPagination
,这是父类的代码Knp\Component\Pager\Pagination\AbstractPagination https://github.com/KnpLabs/knp-components/blob/master/src/Knp/Component/Pager/Pagination/AbstractPagination.php#L118:L121