CakePHP分页助手排序最后

时间:2014-01-06 18:38:09

标签: sorting cakephp null pagination helper

我正在使用CakePHP 2.3.6,我正在尝试使用Pagination帮助程序对数据进行排序,但我想在我的查询中添加Nulls。

有没有人实现此功能?

echo $this->Paginator->sort('status_id', null, array('direction' => 'desc'));

这不起作用,因为Pagination助手未设置为处理它。

echo $this->Paginator->sort('status_id', null, array('direction' => 'desc NULLS LAST'));

1 个答案:

答案 0 :(得分:0)

代码并不是最有效的,我相信我可以通过引用进行分配,但这适用于我的模型。

function beforeFind( $query)
{
    $queryOrderArray = $query['order'];
    if(isset($queryOrderArray)){
        $i = 0;
        foreach($queryOrderArray as $myOrderArray){
            if(isset($myOrderArray) && is_array($myOrderArray)){
                foreach($myOrderArray as $myField => $myOrder){
                    if($myOrder == 'desc'){
                        $myOrder .= ' NULLS LAST';
                        $myOrderArray[$myField] = $myOrder;
                    }
                }
            }
            $queryOrderArray[$i] = $myOrderArray;
            $i++;
        }
    }
    $query['order'] = $queryOrderArray;
    return $query;
}
相关问题