我试图获得非空的集合,即至少有一个对象.集合实体与Object实体具有OneToMany关系.我正在使用KNP paginator来分页结果.这是我的功能:
public function fetchAction(Request $request){
$em = $this->getDoctrine()->getManager();
$page = $request->get('page', 1);
$limit = 10;
$collections = $em->createQueryBuilder()
->select('c')
->add('from', 'CollectionBundle:Collection c LEFT JOIN c.object o')
->having('COUNT(o.id)>0')
->orderBy('c.date', 'DESC')
->getQuery();
$collections = $this->get("knp_paginator")->paginate($collections, $page, $limit);
return $this->render('CollectionBundle:Collection:fetch.html.twig', [
'collections' => $collections
]);
}
Run Code Online (Sandbox Code Playgroud)
错误
我一直听到以下错误
Cannot count query that uses a HAVING clause. Use the output walkers for pagination
Run Code Online (Sandbox Code Playgroud)
没有'Having'子句一切正常,但我必须得到非空集合.
我希望在 symfony4 中实现 KnpPaginatorBundle。
我的问题是,在他们的文档(适用于 S3)中,他们建议使用以下参数 i config.yml。
knp_paginator:
page_range: 5 # number of links showed in the pagination menu (e.g: you have 10 pages, a page_range of 3, on the 5th page you'll see links to page 4, 5, 6)
default_options:
page_name: page # page query parameter name
sort_field_name: sort # sort field query parameter name
sort_direction_name: direction # sort direction query parameter name
distinct: true # ensure distinct results, useful when ORM queries are using GROUP BY statements …Run Code Online (Sandbox Code Playgroud) 是否可以简单地使用ajax运行knp paginator?是否可能,最好的方法是什么?
问候迈克尔
我使用KnpPaginatorBundle来管理我网站后台的分页,效果很好
我将其配置为使用自定义模板
knp_paginator:
template:
pagination: MyappMainBundle::pagination.html.twig
Run Code Online (Sandbox Code Playgroud)
然后,我想在前台使用相同的包但具有不同的html结构.所以,我的问题是:是否可以为分页设置两个模板?一个用于后台,一个用于前台.
提前感谢您的回答.
用例:我想将搜索查询和结果总数存储到数据库中,这样我就可以看到人们正在搜索的内容在我的应用程序中不存在。
\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, …Run Code Online (Sandbox Code Playgroud) 我在knp分页中安装并覆盖模板.但是我需要显示有多少页面.例如:1页10页,5页10页等?我阅读官方文档,但我找不到ansver.
knppaginator ×6
symfony ×5
php ×2
ajax ×1
controller ×1
doctrine-orm ×1
mysql ×1
symfony-2.5 ×1
symfony4 ×1
twig ×1