在我一直在研究的 Symfony2 CRM 中执行搜索时,我遇到了上述错误。根据 Google 搜索,这似乎是与 KNP Paginator 捆绑包有关的问题,但我似乎找不到可靠的解决方案。
在这种情况下,我使用来自 OpenCart 数据库的数据,并且我需要能够通过邮政编码和公司名称进行搜索,这两者都存在于地址表中,该地址表通过客户实体中的映射值连接,defaultaddress
.
为此,我不得不在一个函数中编写一个自定义查询,findCustomerByPostcode
如下所示:
$this->getEntityManager()
->createQuery('SELECT c FROM AppBundle:Oc49Customer c JOIN AppBundle:Oc49Address a WITH c.defaultaddress = a.id WHERE a.postcode LIKE :postcode')
->setParameter('postcode','%'.$postcode.'%')
->getResult();
但是,当我对邮政编码执行搜索时,我在浏览器中收到以下错误:
其中一位听众必须对给定的目标进行计数和切片
它指的Paginator.php
是 KNP 包中的文件。我已经更新到最新版本 2.5,但我似乎无法摆脱这个错误,对我来说它甚至没有意义。
非常感谢任何帮助,因为我想不出另一种通过连接表中的值进行搜索的方式。
它返回邮政编码搜索的结果,然后在控制器中:
$customers = $customer_repository->findCustomerByPostcode($filter_value);
$paginator = $this->get('knp_paginator');
$pagination = $paginator->paginate(
$customers,
$request->query->get('page', 1),
20
);