Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting KNP分页器包查询问题_Sorting_Symfony_Doctrine Orm_Pagination_Knppaginator - Fatal编程技术网

Sorting KNP分页器包查询问题

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

我正在使用KNP Paginator包,在我尝试使用一对多关系关联对字段进行排序之前,一切都正常。我在purchaseOrder表中有一个名为“supplier_id”的文件,我正在尝试对其进行排序,但我一直得到一个“没有这样的字段…”错误。“供应商id”字段仅保存“供应商”表中的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>
我的问题是,当我正在排序的字段是一对多关系的一部分时,如何排序。ID存储在名为“供应商ID”的字段中,但它是一种OTM关系


谢谢

长话短说,你需要做一些变通


基本上,您需要一个普通的查询,以您想要的方式获取所有对象的ID。然后使用这些ID构造一个新的查询,在其中查找这些ID并对该查询进行分页

您可以使用使用QueryBuilder原则创建的DQL尝试paginator

 There is no such field [supplier_id] in the given Query component, aliased by [p]