在二次开发shopnc的时候会用分页相关的操作。但是发现原有的model()->page() 这个并没有什么用!始终只能查询第一页!所以只能改造下继承了。
首先控制器会继承一个类 我们去修改新增下我们自己的类!
//原有
class activityControl extends BaseHomeControl {
//修改
class activityControl extends BaseXXXXControl {
在BaseXXXXControl继承类中新增
public $tableData = null;
/**
* 先获取表名
* @param type $table
* @return this
*/
public function table($table) {
$this->tableData['table'] = $table;
return $this;
}
/**
* 需要的字段
* @param type $str
* @return this
*/
public function field($str) {
$this->tableData['field'] = $str;
return $this;
}
/**
* 条件
* @param type $str
* @return this
*/
public function where($str) {
$this->tableData['where'] = $str;
return $this;
}
/**
* 分页
* @param type $page 页码
* @param type $size 当页数量
* @return this
*/
public function page($page, $size) {
if ($page <= 0) {
$page = 1;
}
$page = $page - 1;
$this->tableData['limit'] = $page * $size . ',' . $size;
return $this;
}
/**
* 排序
* @param type $str
* @return this
*/
public function order($str) {
$this->tableData['order'] = $str;
return $this;
}
/**
* 查询结果
* @return array
*/
public function select() {
return Db::select($this->tableData);
}
使用如下:
$page=页码
$size=显示数量
$this->table('表名')->page($page, $size)->order('id desc')->select();这样会不会发现很简单
关键字词:

