待定状态无法排序

时间:2014-10-25 13:58:30

标签: php cakephp

我希望获得具有待处理状态的所有行的结果,然后显示其余没有待处理的行。我无法通过这种方式获得正确的语法。我想要所有挂起值行,然后是所有其他非挂起行。

$this->Paginator->settings = array(
               // 'conditions' => array('request_status' => 'pending') , 
              'order' => array('request_status' => 'pending','request_date'=> 'desc'),   
    'limit' => 5  );

2 个答案:

答案 0 :(得分:1)

'request_status' => 'pending'应该是'request_status' => 'asc''request_status' => 'desc',具体取决于偏好。它并不属于订单条件,因为您已指定为WHERE子句的一部分而不是ORDER BY

编辑:

如果它是您要渲染的标准显示,则使用模型而不是分页设置。我之前遇到过困难。因此,在模型中,您将定义订单变量

 public $order = array("request_status" => "ASC");

public $order = array("request_status" => "DESC");

在视图的控制器中,将调用标准

$this->set('mydata' , $this->Paginator->paginate);

答案 1 :(得分:0)

您可以对多个列进行排序,并且可以按不同方向对不同列进行排序。例如,要按降序排序的request_date类型,然后按request_type中的request_status降序排序(最先请' request_date),请使用以下查询:

mysql> SELECT * FROM pet
    -> ORDER BY request_status, request_date DESC;

CakePHP的:

'order' => array('request_status, request_date DESC');

DESC关键字仅适用于紧接其前面的列名(request_date);它不会影响request_status列排序顺序,但会对它们进行分组。换句话说,上面的sql查询将对request_date字段排序的request_status字段进行分组。

分页器排序的另一个有用链接this one.