duanbei7035
2014-03-28 09:57
浏览 31
已采纳

CodeIgniter分页不起作用:找不到对象! 错误404

I'm working on the pagination for codeigniter. I was able to set it on my page but when I click the next page it will say

Object not found! Error 404.

My is correctly placed when I click the next, which is http://localhost/contents/index/2. Also another thing I noticed is that $config['per_page'] = 2; yet when I load the page all the data that was looped from a database is shown in 1 page instead of 2 per page.

Controller

//Pagenation below    
            $this->load->library('pagination');
            $config['base_url'] = 'http://localhost/contents/index';
            $config['total_rows'] = 200;
            $config['per_page'] = 2; 
            $this->pagination->initialize($config);    
            echo $this->pagination->create_links();

            $data['contents'] = $this->content_model->get_content();
            $data['title'] = 'Contents';
            $this->load->view('template/header', $data);   
            $this->load->view('pages/index', $data);
            $this->load->view('template/footer');
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duanbi8089 2014-03-28 10:05
    已采纳

    try this

               function index($offset=null){
                    $this->load->library('pagination');
                    $config['base_url'] = 'http://localhost/contents/index/';
                    $config['total_rows'] = 200;
                    $config['per_page'] = 2; 
                    $this->pagination->cur_page = $offset;
                    $this->pagination->initialize($config);       
    
    
                    $data['contents'] = $this->content_model->get_content($config['per_page'],$offset);
                    $data['title'] = 'Contents';
    
    
    
                    $this->load->view('template/header', $data);   
                    $this->load->view('pages/index', $data);
                    $this->load->view('template/footer');
    }
    

    whole data showing in 1 page because you are not passing limit in model function.you getting 404 because you forgot / at the end of the base_url

    in model

    function get_content($limit,$offset) {
    
            $query = $this->db->get('content',$limit,$offset);
            return $query->result();
        }
    

    in view

     echo $this->pagination->create_links(); //put this in view not in controller
    
    打赏 评论
  • dongming8867 2014-03-28 10:08

    use have to write the routes to get the values of the page number . You have to add this line to your routes.php in application/config folder

    CODE: Routes.php

     $route['index/(:num)'] = 'index/$1';
    

    index function in index.php :

    function index($current_page){ 
    
    $this->load->library('pagination');
                $config['base_url'] = 'http://localhost/contents/index';
                $config['total_rows'] = 200;
                $config['per_page'] = 2; 
                $this->pagination->initialize($config);  
                $this->pagination->cur_page = $current_page;  
                echo $this->pagination->create_links();
    
                $data['contents'] = $this->content_model->get_content();
                $data['title'] = 'Contents';
                $this->load->view('template/header', $data);   
                $this->load->view('pages/index', $data);
                $this->load->view('template/footer');
    
    }
    
    打赏 评论

相关推荐 更多相似问题