database - 如何为 knp 分页器写一个好的 dql
问题描述
我有这个查询:
$data1 = $session->get('oficina');
$data2 = $session->get('area');
$dql = $this->getDoctrine()->getRepository('AppBundle:Registro')->createQueryBuilder('l')
-> where('l.oficina = (:data1) and l.area = (:data2)')
-> setParameter('data1', $data1)
-> setParameter('data2', $data2)
-> orderBy('l.id', 'DESC')->getQuery();
我得到了这个错误:警告:preg_split() 期望参数 2 是字符串,给定对象
我想将此查询与分页器 knp 捆绑包一起使用我将查询发送到分页器:
$list = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$list, /* query NOT result */
$request->query->getInt('page', 1)/*page number*/,
5/*limit per page*/
);
你知道查询有什么问题吗???
解决方案
试试看 :
我认为您在这一行有错误
-> where('l.oficina = (:data1) and l.area = (:data2)')
用它
->Where('l.oficina = :data1')
->andWhere('l.area = :data2')
-> setParameter('data1', $data1)
-> setParameter('data2', $data2)
或者
$data1 = $session->get('oficina');
$data2 = $session->get('area');
$em = $this->get('doctrine.orm.entity_manager');
$dql = "SELECT l FROM AppBundle:Registro a WHERE l.oficina = '$data1' and l.area = '$data2'";
$list = $em->createQuery($dql);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$list,
$request->query->getInt('page', 1)/*page number*/,
5,/*limit per page*/
array('defaultSortFieldName' => 'l.id', 'defaultSortDirection' => 'desc')
);
推荐阅读
- flutter - 未来第一次返回 null
- python - 如何将主题/样式添加到 GUIZERO python3 包
- c - 为什么我在 C 中遇到内存泄漏(代码块)
- flutter - 如何在同一行中添加 2 个文本字段并在它们之间留出一些空间颤动飞镖
- reactjs - 如何在另一个动作中调用动作?
- node.js - Cloud Storage 已删除的文件仍可访问
- excel - 从 Excel 公式中的日期字段中删除时间
- android - 长话短说,我们需要在使用 React Native 的 Android 设备上自动激活 Show On Lock Screen 权限吗?
- python - 快速排序不根据日期排序
- windows - Flutter 是否支持 Windows 平台上的 BLE?