求助,分页类里面的$offset是怎么来的?
我是个菜鸟,我一直弄不明白$offset它的执行流程……是这样的,先是一个文章控制器里面有个index方法:
/**
* 显示文章列表
* @return void
*/
public function index($offset = '')
{
$config['base_url'] = site_url('admin/article/index/');
$config['total_rows'] = $this->article_model->get_article_sum(); //文章总条数
$config['per_page'] = 2; //每页显示多少条记录
$config['uri_segment'] = 4;
$this->pagination->initialize($config); //这样做后究竟发生了什么事情?
$data['links'] = $this->pagination->create_links();
$limit = $config['per_page'];
// $offset = $this->uri->segment(4);
$data['article_list'] = $this->article_model->get_per_page($limit, $offset);
$this->load->view('list.html', $data);
}
article_model里的get_per_page方法就是一个limit语句
/**
* 获取某一页的文章
* @return array 至少是二维的吧
*/
public function get_per_page($limit, $offset)
{
return $this->db->limit($limit, $offset)->get(self::TABLE)->result_array();
}
我的问题是 $offset是怎么来的?$config['uri_segment'] 难道它会自动把值付给 $offset,还是说CI检测到$offset为空时会去自动截取uri的最后一段?
分页跑起来貌似也没问题,但我一直都不明白,望大家指点一二啊。
数据库获取的呀$this->db->limit($limit, $offset) 看你的index函数定义,有一个$offset参数:
public function index($offset = '')
当你访问页面: admin/article/index/1 时,会自动将1赋值给$offset
可以看下CodeIgniter.php中的相关代码:
$params = array_slice($URI->rsegments, 2);
call_user_func_array(array(&$CI, $method), $params);
aneasystone 发表于 2015-7-9 18:03
看你的index函数定义,有一个$offset参数:
好的,谢谢。我去追下……
页:
[1]