【发布时间】:2014-07-18 20:12:54
【问题描述】:
我正在使用 KNP Paginator 捆绑包,一切正常,直到我尝试对具有一对多关系关联的字段进行排序。我在 purchaseOrder 表中有一个名为“supplier_id”的文件,我正在尝试对其进行排序,但我不断收到“没有这样的字段......”错误。 “supplier_id”字段仅包含“Supplier”表中的 ID 号。
这是我的代码。
// 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>
当我点击它进行排序时,它给了我这个错误:
There is no such field [supplier_id] in the given Query component, aliased by [p]
我的问题是,当我要排序的字段是一对多关系的一部分时,我该如何排序。 ID 存储在名为“supplier_id”的字段中,但它是 OtoM 关系。
谢谢!
【问题讨论】:
标签: sorting symfony doctrine-orm pagination knppaginator