2012-03-02 15 views
2

Iがデータを取得paginatiomにCodeIgniterの中の管理コントローラCodeIgniterのページネーション・エラー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; 
} 

最初のページを持っているが、ページ付けローカルホストで生成リンク/サイト名/ admin/3は404エラーを生成します。

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

へ:問題は私のスクリプトである が

答えて

4

は、変更する必要があるあなたが必要 URLはadmin/3ようになり場合

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

は、あなたが使用することができますroute_remap

サイドノート:

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

それは同じことを行いますが、それは可能な場合は、コントローラのメソッドの引数を使用すると便利です:URIクラスではなく、あなたのページ番号を取得するには、これを使用することを検討してください。

1

変更する必要があります。

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

変更

$config['uri_segment'] = 3; 

チェックあなたは.htaccessファイルを使用したりしていない場合。そうでない場合は、codigniterのpagginationに404エラーを取得する場合は、上記で$ CONFIG [「BASE_URL」]は

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

私は@itachiに同意します –

0

あるべき事をfollwing確認してください。

1)あなたのコントローラを確認し、それがインデックスですか気にいらないそうでなければ、インデックスのならば、BASE_URLは次のようになります。

base_url().'admin/index/pages'と、それは他の代だ場合、それは次のようになります。

base_url().'admin/somethingelse/pages'

2) 'uri_segment'を$this->uri->segment(4)で確認してください。ページ番号を取得すると、codiegniterが実行されます。

関連する問題