簡體   English   中英

如何在Symfony的控制器中獲取搜索查詢的總數

[英]How do I get total count for a search query in the controller in Symfony

用例 :我想將搜索查詢和結果總數存儲到數據庫中,這樣我就可以看到人們正在搜索的內容在我的應用程序中不存在。

工作原理:我可以獲取並存儲查詢,但是我不知道如何獲取搜索結果的總數。

這是來自控制器的代碼示例。 當我目前嘗試此操作時,得到以下信息

錯誤:可捕獲的致命錯誤:無法將類Knp \\ Bundle \\ PaginatorBundle \\ Pagination \\ SlidingPagination的對象轉換為字符串

我嘗試通過請求$ pagination [totalCount]來將$ pagination視為數組,但這只是返回null。

 public function fpcAction(Request $request)
    {

            $query = dump($request->query->get('q'));

            $finder = $this->container->get('fos_elastica.finder.app.product');
            $page = $request->query->getInt('page', 1);

            $paginator = $this->get('knp_paginator');
            $results = $finder->createPaginatorAdapter($query);
            $pagination = $paginator->paginate($results, $page, 12);



            $searchmetrics = new SearchTerms();
            $searchmetrics->setSearchterm($query);
            $searchmetrics->setDate(time());

            // TODO: Need to get the total qty of search results for this specific query
            $searchmetrics->setResultsqty($pagination);

            $entityManager = $this->getDoctrine()->getManager();
            $entityManager->persist($searchmetrics);
            $entityManager->flush();


            return $this->render('default/search.html.twig', ['searchresults' => $pagination, 'query' => $query]);

    }

這是變量在樹枝模板上輸出時的轉儲:

 "searchresults" => SlidingPagination {#1028 ▼
    -route: "search"
    -params: array:1 [▶]
    -pageRange: 5
    -template: "@KnpPaginator/Pagination/sliding.html.twig"
    -sortableTemplate: "@KnpPaginator/Pagination/sortable_link.html.twig"
    -filtrationTemplate: "@KnpPaginator/Pagination/filtration.html.twig"
    #currentPageNumber: 1
    #numItemsPerPage: 12
    #items: array:12 [▶]
    #totalCount: 8104
    #paginatorOptions: array:6 [▶]
    #customParameters: []
  }

你應該做

$searchmetrics->setResultsqty($pagination->getTotalItemCount());

實際上, $paginationKnp\\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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM