2012-03-02 93 views
2

我在笨管理控制器笨分頁誤差404

class Admin extends CI_Controller { 

function __construct() { 

    parent::__construct(); 

    if (!$this->tank_auth->is_logged_in()) redirect('login'); 
    $this->load->library('pagination'); 

} 

function index() { 

    $offset = $this->uri->segment(2); 
    $config['per_page'] = 3; 
    $data['sitetitle'] = 'Výpis jobů'; 
    $data['listings'] = $this->Jobs_model->get_listings(0,$user_id = FALSE,$config['per_page'],$offset); 
    $config['uri_segment'] = 2; 
    $config['base_url']  = base_url().'admin/'; 
    $config['total_rows'] = $this->db->count_all_results('jobs'); 


    $this->pagination->initialize($config); 

    $this->template->set('title', 'Domovská stránka'); 
    $this->template->load('template', 'site', $data); 
} 

}

和Jobs_model

function get_listings($category, $user_id = false, $limit = 0, $offset = 0) { 

    $data = array(); 

    $this->db->order_by('id', 'desc'); 
    $q = $this->db->get('jobs'); 

    if ($category) { 
     $options = array('category' => $category); 
     $this->db->order_by('id', 'desc'); 
     $this->db->where('category', $category); 
     $q = $this->db->get('jobs', $limit, $offset); 
    } 
    else { 
     $query = $this->db->order_by('id', 'desc'); 
     if ($user_id) $query = $query->where('user_id', $user_id); 
     $q = $query->get('jobs',$limit, $offset); 
    } 

    if ($q->num_rows() > 0) { 
     foreach ($q->result_array() as $row) { 
      $data[] = $row; 
     } 
    } 

    $q->free_result(); 
    return $data; 
} 

第一頁paginatiom獲取數據,但鏈接在分頁本地主機生成/網站名稱/ admin/3會產生404錯誤。 凡在我的腳本問題

回答

4

你需要改變:

$config['base_url'] = base_url().'admin/'; 

要:

$config['base_url'] = base_url().'admin/index/'; 

如果需要的URL,像admin/3,您可以使用route_remap

邊注:考慮用它來獲取你的頁面數量,而不是URI類:

function index($offset = 0) { 
    // your code 
} 

它會做同樣的事情,但它的方便時,可以使用控制器方法的參數。

1

你需要做一些改變。

$config['base_url']=base_url().'admin/index'; 

變化

$config['uri_segment'] = 3; 

檢查,如果你正在使用的.htaccess與否。如果你不是,那麼在上述$配置[「BASE_URL」]應該是

$config['base_url']=base_url().'index.php/admin/index'; 
+0

我同意@itachi – 2017-02-16 19:53:27

0

如果你得到codigniter paggination 404錯誤,請檢查follwing事情:

1)檢查您的控制器,它的索引或財產以後否則,如果是指數則BASE_URL應該是:

base_url().'admin/index/pages',如果它出頭否則它應該是:

base_url().'admin/somethingelse/pages'

2)通過$this->uri->segment(4)檢查'uri_segment',這樣你就得到了頁碼,否則就會執行codiegniter。