Example #1
0
 /**
  * 查询数据库数量,计算分页信息
  *
  * @param integer $current  当前页
  * @param integer $size     每页多少条
  * @param integer [$total]  一共有多少条,不指定就到数据库内查询
  * @return
  * array(
  *  'total' => (integer),       // 一共有多少条数据
  *  'size' => (integer),        // 每页多少条
  *  'from' => (integer),        // 本页开始的序号
  *  'to' => (integer),          // 本页结束的序号
  *  'first' => 1,               // 第一页
  *  'prev' => (integer|null),   // 上一页,null说明没有上一页
  *  'current' => (integer),     // 本页页码
  *  'next' => (integer|null),   // 下一页,null说明没有下一页
  *  'last' => (integer),        // 最后一页
  * )
  */
 public function getPageInfo($current, $size, $total = null)
 {
     if ($total === null) {
         $limit = $this->limit;
         $offset = $this->offset;
         $order = $this->order_by;
         $this->order(null)->limit(0)->offset(0);
         $total = $this->count();
         $this->order($order)->limit($limit)->offset($offset);
     }
     return \Lysine\cal_page($total, $size, $current);
 }
Example #2
0
 /**
  * 获得分页信息
  *
  * @param integer $size
  * @param integer $current_page
  * @param integer $total
  * @access public
  * @return array
  */
 public function getPageInfo($current_page, $size, $total = null)
 {
     if (!$total) {
         $old_offset = $this->offset;
         $old_limit = $this->limit;
         $old_order = $this->order;
         $this->offset = $this->limit = $this->order = null;
         $total = $this->count();
         $this->offset = $old_offset;
         $this->limit = $old_limit;
         $this->order = $old_order;
     }
     return \Lysine\cal_page($total, $size, $current_page);
 }