Sorting KNP分页器包查询问题
我正在使用KNP Paginator包,在我尝试使用一对多关系关联对字段进行排序之前,一切都正常。我在purchaseOrder表中有一个名为“supplier_id”的文件,我正在尝试对其进行排序,但我一直得到一个“没有这样的字段…”错误。“供应商id”字段仅保存“供应商”表中的id号 这是我的密码Sorting KNP分页器包查询问题,sorting,symfony,doctrine-orm,pagination,knppaginator,Sorting,Symfony,Doctrine Orm,Pagination,Knppaginator,我正在使用KNP Paginator包,在我尝试使用一对多关系关联对字段进行排序之前,一切都正常。我在purchaseOrder表中有一个名为“supplier_id”的文件,我正在尝试对其进行排序,但我一直得到一个“没有这样的字段…”错误。“供应商id”字段仅保存“供应商”表中的id号 这是我的密码 // Set the up the pagination statement... $em = $this->getDoctrine()->getMan
// Set the up the pagination statement...
$em = $this->getDoctrine()->getManager();
$dql = "SELECT p FROM WIC\PurchaseOrderBundle\Entity\PurchaseOrder p WHERE p.account=:account_id ORDER BY p.id desc";
$query = $em->createQuery($dql);
$query->setParameters(array(
'account_id' => $account->getId(),
));;
$paginator = $this->get('knp_paginator');
$paginatorObject = $paginator->paginate(
$query,
$this->get('request')->query->get('page', 1),25
);
因此,基本上在页面的第一次加载时,它会抓取所有采购订单
然后,我将其设置为能够按供应商进行排序:
<th>{{ knp_pagination_sortable(purchaseOrders, 'Supplier', 'p.supplier') }}</th>
我的问题是,当我正在排序的字段是一对多关系的一部分时,如何排序。ID存储在名为“供应商ID”的字段中,但它是一种OTM关系
谢谢 长话短说,你需要做一些变通
基本上,您需要一个普通的查询,以您想要的方式获取所有对象的ID。然后使用这些ID构造一个新的查询,在其中查找这些ID并对该查询进行分页 您可以使用使用QueryBuilder原则创建的DQL尝试paginator
There is no such field [supplier_id] in the given Query component, aliased by [p]