主页 > 编程资料 > 编程更多 >
发布时间:2016-11-10 作者:apizl 阅读:557次

在二次开发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();

这样会不会发现很简单

文章由爱资料原创本文地址:https://www.apizl.com/archives/view-132910-1.html,转载请以链接形式标明本文地址!
关键字词: