2011-12-08 126 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