我正在使用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'));
答案 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;
}