2011-12-08 17 views
1

CodeIgniterページングモジュールに問題があります。コードイグナイタページネーション404エラー

リンクをクリックすると404エラーが表示されます。私が理解しているように、私は間違っているかもしれませんが、オフセットを決定するURIセグメントがコントローラのインデックス関数の中で読み取られていないように見え、そのコードイグナイタはコントローラー内の関数としてこれを実際に探しています404それを見つけることができないとき。

私はGoogle検索し、解決策を見つけるためにフォーラムでチェックしたが、何も成功していない。もし誰かがヒントやヒントを持っていれば、私のコントローラ、モデル、ビューの関連コードを以下に掲載しました。

//コントローラ

$this->load->library('pagination'); 
$config['base_url'] = '/yourhistory/'; 
$config['total_rows'] = $this->db->get('gallery')->num_rows(); 
$config['per_page'] = 3; 
$config['uri_segment'] = 2; 
$this->pagination->initialize($config); 
$data['galleryitems'] = $this->pages_model->get_gallery($config['per_page'], $config['uri_segment']); 
$this->load->view('/gallery', $data); 

//モデル

function get_gallery($limit, $segment) 
{ 
    $query = $this->db->get('gallery', $limit, $this->uri->segment($segment)); 
    if ($query->num_rows > 0) 
    { 
    foreach($query->result() as $row) 
    { 
    $data[] = $row; 
    } 
    return $data; 
    } 
} 

//ビュー

echo $this->pagination->create_links(); 

答えて

2

まあそのがあるため、あなたのBASE_URLのオフに最初に失敗するだろう:あなたがあるURLを提供していないとして、私はちょうどここに推測していalthoあなたは、完全なパスを必要とする

$config['base_url'] = 'http://example.com/index.php/test/page/'; 

ここで改ページに404

注意を投げる:http://codeigniter.com/user_guide/libraries/pagination.html

+0

私はbase_url()を使って作業しています。 'yourhistory/index /';明らかにyourhistoryというコントローラを指しています。しかし、これは一時的なものですが、動的に生成されたURLを使用しているため、dbに格納されている情報に応じてすべてをロードするコントローラにリダイレクトするようにルートを設定しています。したがって、yourhistory/index /は、yourHistory/index /に設定されたルートがないため、正しいコントローラにルーティングされません。私が考えることができる唯一の解決策は、アイテムがアップロードされるたびに新しいルートを動的に生成することです。しかし、確かにより良い方法がありますか? – user1087944

+0

コントローラ内でカスタムルーティングを設定できるので、urlの 'yourhistory'部分だけがコントローラにルーティングされ、残りは' '_remap'という名前の関数によって解析されます(http://codeigniter.com/user_guide /general/controllers.html#remapping) – minboost

+1

伝説的な歓声! – user1087944

1

あなたBASE_URLが正しくありません:

 
//should be something like this 
$config['base_url'] = base_url().'/controllername/functionname/'; 

参照:http://codeigniter.com/user_guide/libraries/pagination.html

+0

こんにちは、これは働いているおかげで。しかし、私のコントローラのすべてのコードは、index_functionのようにbase_url()。 '/ yourhistory/index';インデックスを削除する方法はありますか? – user1087944