2011-12-08 106 views
1

我遇到了CodeIgniter分頁模塊的問題。代碼點火器分頁404錯誤

當我點擊鏈接時,我得到一個404錯誤。據我所知,我可能是不正確的,但似乎確定偏移量的URI段沒有在我的控制器的索引函數內讀取,並且代碼點火器實際上是在控制器內尋找這個函數,因此拋出404當它無法找到它。

我已經搜索並檢查論壇找到解決方案,但沒有任何成功。如果任何人有任何提示或提示,那麼我會在下面的控制器,模型和視圖中添加相關的代碼。

//控制器

$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的:

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

您需要的完整路徑,本書雖然我只是猜測這裏你沒有提供的網址是投擲404

注意事項分頁瀏覽:http://codeigniter.com/user_guide/libraries/pagination.html

+0

我現在正在使用base_url()。'yourhistory/index /';顯然指向一個名爲你的歷史的控制器。然而,這只是暫時的,因爲我使用的是動態生成的url,其路徑設置爲重定向到一個控制器,該控制器根據存儲在數據庫中的信息加載所有內容。因此,您的歷史/索引/不會路由到正確的控制器,因爲它們沒有爲您的歷史/索引/設置路線。我能想到的唯一解決方案是在每次上傳項目時動態地生成新路線。但肯定有更好的方法? – 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

你好,這已經工作的感謝。然而,我的控制器中的所有代碼都在索引函數中,比如base_url()。'/ yourhistory/index';有刪除索​​引的方法嗎? – user1087944