Cakephp 如何删除排序&;来自分页链接的方向键,并应用控制器操作中指定的顺序

Cakephp 如何删除排序&;来自分页链接的方向键,并应用控制器操作中指定的顺序,cakephp,pagination,Cakephp,Pagination,我正在使用paramType的paginator组件isquerystring,并在从$this->paginate()获取结果之前指定了多个操作顺序,如下所示 $this->paginate['order'] = array( "field1" => "Asc", "field2" => "Desc", "field3" => "Asc", ); $this->set('results', $this->paginate('Mode

我正在使用
paramType
的paginator组件is
querystring
,并在从
$this->paginate()
获取结果之前指定了多个操作顺序,如下所示

$this->paginate['order'] = array(
    "field1" => "Asc",
    "field2" => "Desc",
    "field3" => "Asc",
);

$this->set('results', $this->paginate('ModelName'));
当我单击第2页链接时,它会生成一个url,如
?page=2&sort=field1&direction=Asc
,我想从查询字符串中删除排序键,并需要通过应用我指定的顺序来获取结果

有人能帮我吗


如文档所示,您可以覆盖分页方法:

/**
 * Overridden paginate method - group by week, away_team_id and home_team_id
 */
public function paginate($conditions, $fields, $order, $limit, $page = 1,
    $recursive = null, $extra = array()) {

    $recursive = -1;
    $group = $fields = array('week', 'away_team_id', 'home_team_id');
    return $this->find(
        'all',
        compact('conditions', 'fields', 'order', 'limit', 'page', 'recursive', 'group')
    );
}
或者,从文档中获取:

控制用于订购的字段
默认情况下,可以对模型上的任何列进行排序。这有时是不可取的,因为它允许用户对未编制索引的列或计算成本高昂的虚拟字段进行排序。您可以使用PaginatorComponent::paginate()的第三个参数来限制将对其进行排序的列:

$this->Paginator->paginate('Post', array(), array('title', 'slug'));
这将只允许对标题和slug列进行排序。将排序设置为任何其他值的用户将被忽略




我们可能必须向后移植到2.5它是否支持@mark的多重排序?这不是我想要的答案:(