ホームページ  >  記事  >  バックエンド開発  >  CodeIgniter (CI 3.0) ページングクラス実践記録

CodeIgniter (CI 3.0) ページングクラス実践記録

WBOY
WBOYオリジナル
2016-06-23 13:19:00848ブラウズ

私は最近 B/S を学習しており、エントリーポイントとして PHP CI フレームワークを選択しました。

個人用 CMS を作成しようとしたときに、ページングが必要な状況に遭遇しました。インターネット上でバージョン 3.0 以降の例が見つからなかったようです。参考までに、ローカルの実験コードを以下に添付します。

データベースの状況は次のとおりです:

最初にコントローラーを確認します

<?php/** * Created by PhpStorm. * User: erdao * Date: 16-1-11 * Time: 下午10:25 */class P extends CI_Controller{    /**     * P constructor.     */    public function __construct()    {        parent::__construct();        $this->load->model('article_model','article');        $this->load->library('pagination');    }    /**     * @param int $page 可看做offset     */    public function index($page=0)    {        //每页显示三条数据        $limit['num']=3;        $limit['offset']=$page;        $config['base_url']=site_url('p/index');        $config['total_rows']=$this->article->get_articles_num();//数据总条数        $config['per_page']=$limit['num'];//每页显示条数        $this->pagination->initialize($config);        $data=array(            'articles'=>$this->article->get_limit_articles($limit)        );        $this->load->view('page_ex',$data);    }}

次にモデルを確認します

<?php/** * Created by PhpStorm. * User: erdao * Date: 16-1-12 * Time: 下午9:48 */class Article_model extends CI_Model{    /**     * Article_model constructor.     */    public function __construct()    {        parent::__construct();    }    /**     * 获取全部数据     * @return mixed     */    public function get_all_articles()    {        $this->db->from('my_article');        $this->db->order_by('posttime', 'DESC');        $query=$this->db->get();        return $query->result_array();    }    /**     * 获取表内数据数量     * @return mixed     */    public function get_articles_num()    {        return $this->db->count_all('my_article');    }    /**     * 获取有限个数的数据     * @param array $arr     * @return mixed     */    public function get_limit_articles($arr=array('num'=>FALSE,'offset'=>FALSE))    {        if(isset($arr['num']) and isset($arr['offset']) and ($arr['num']!==FALSE) and ($arr['offset']!==FALSE))        {            $query=$this->db->get('my_article',$arr['num'],$arr['offset']);            return $query->result_array();        }        else        {            return $this->get_all_articles();        }    }}

最後にビュー

<?phpforeach($articles as $item){    echo $item['title'];}echo $this->pagination->create_links();

実行中のエフェクトのスクリーンショットを添付します

それここで、index/9 に注意してください。9 は、ページ数ではなく、データベース内のインデックスとみなすことができます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。