我希望获得具有待处理状态的所有行的结果,然后显示其余没有待处理的行。我无法通过这种方式获得正确的语法。我想要所有挂起值行,然后是所有其他非挂起行。
$this->Paginator->settings = array(
// 'conditions' => array('request_status' => 'pending') ,
'order' => array('request_status' => 'pending','request_date'=> 'desc'),
'limit' => 5 );
答案 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.