CI的分页类,只能用在控制器中吗?
本帖最后由 htouch 于 2009-11-12 23:40 编辑如题。
是否可以用在模型中呢?因为我的数据库查询、输出,都是在模型中做的。。 分页属于页面逻辑,不应该放到模型层吧? 恩。。
我的CRUD是仿照《PHP 敏捷开发框架 CodeIgniter》这本书中的例子做的,
作者将库查询及结果页内容组织都放在Model里了。。
他的思路是不同的库表对应不同的(十分简单的)控制器,而都共用一个CRUD模型。
如此说来,我莫不是没法用CI的分页类了?
{:3_49:} 分页类在模型中没有道理用不了,普通的类库在哪里都能用。 本帖最后由 htouch 于 2009-11-12 23:38 编辑
抱歉,自己没有试就来问,是可以在Model中用的,试过了。
贴出自己的实现代码,以示歉意:
//CI的分页类,传递的参数是偏移量,
//也就是从库中的第几条记录开始显示,
//而不是某些分页方法中所传递的页码
function show_all($offset)
{
//载入'分页类'
$this->load->library('pagination');
$this->load->helper('form');
$this->load->helper('url');
//根据组合条件,计算记录总数,(当前组合条件为空)
$config['total_rows'] = $this->db->count_all_results('mytable');
//设置本页路径
$config['base_url'] = "本页路径";
//设置每页显示记录数
$config['per_page'] = '15';
//设置分页导航条样式
$config['full_tag_open'] = '<div id = "page_nav">';
$config['full_tag_close']= '</div>';
$config['first_link'] = '首页';
$config['last_link'] = '末页';
$config['next_link'] = '下一页>';
$config['prev_link'] = '<上一页';
//应用设置
$this->pagination->initialize($config);
//设置查询条件
$this->db->select('你的字段列表');
//排序顺序
$this->db->order_by("id", "desc");
//limit(结果数,偏移量)
$this->db->limit($config['per_page'],$offset);
//查询
$query = $this->db->get('mytable');
//显示结果列表
foreach ($query->result_array() as $row){
$this->table->add_row($row);
}
echo $this->table->generate();
//添加分页导航条
echo $this->pagination->create_links();
}
用get_instance()获得controller对象 感谢楼上,您要不说,我真想不到。
页:
[1]