Csort通常用来实现排序,需要注意的地方是:
1. 下面代码中的Csort改变了sql语句执行时的排序方式(即sql语句中的order by)
1 $criteria = new CDbCriteria; 2 3 $pages = new CPagination(Post :: model() -> count ()); 4 $pages -> applyLimit( $criteria ); 5 6 $sort = new CSort( ' Post ' ); 7 $sort -> defaultOrder = ' status ASC, createTime DESC ' ; 8 $sort -> applyOrder( $criteria );
2. 下面代码中的sort改变的是表头默认排序方式, 同时设置了鼠标点击排序效果.
1 return new CActiveDataProvider( get_class ( $this ) , array ( 2 ' criteria ' => $criteria , 3 ' sort ' => array ( 4 // 表头设置点击排序的字段 5 ' attributes ' => array ( 6 ' remitdate ' , 7 ' dayrate ' => array ( 8 ' asc ' => ' dayrate ' , 9 ' desc ' => ' dayrate DESC ' , 10 ) 11 ) , 12 ' defaultOrder ' => ' remitdate desc ' , 13 ) , 14 ));
上面两段代码实现的功能不同, 一个是影响sql排序,另外一个是表头的点击排序.