lonesane 发表于 2007-12-17 11:39:58

Kohana中的分页

Kohana是源于CI的,所以掌握CI之后,对Kohana来说,都基本上是差不多的。以前照着CI的方法使用Kohana,没出过什么问题。这次写一个分页,看到了CodeIgniter 分页教程(Pagination)这篇文章,于是照着做,没有成功。看来Kohana和CI的分页稍微有些不一样了。
打开Kohana的Pagination.php看了下,发现和CI的配置参数有些不一样了.主要是下面几行:


      public $base_url       = '';
      public $directory      = 'pagination';
      public $style          = 'classic';
      public $uri_segment    = 3;
      public $items_per_page = 10;
      
      public $current_page;
      public $total_pages;
      public $total_items;

参数都比较简单,我就不说了。于是,按照台下方法调用pagination。

                $model=new Product_Model();
                $config['uri_segment'] =4 ;
                $config['total_items'] = $model->count();
                $config['items_per_page'] = '5';
                $this->load->library('pagination',$config);
                $result=$model->getList($this->pagination->sql_limit())->result();
                $view=$this->load->view("admin/product_list_view");
                $view->proList=$result;
                $view->render(true);

需要注意的是uri_segment要真写正确,才能生成相应的url。Konaha的分页增加了sql_offset()和sql_limit()两个方法。sql_offset()生成相应的偏移量,而sql_limit()可以生成LIMIT 5 OFFSET 15 这样的一小段,直接加到我们的sql语句后就好了,非常好用。在这里我的$model调用了一个getList的方法,传入了$this->pagination->sql_limit().
最后就是视图了,视图和CI没什么两样

<?echo $this->pagination->create_links() ?>

Hex 发表于 2007-12-17 12:19:54

支持原创文章!顶了!加分加精!
页: [1]
查看完整版本: Kohana中的分页