codeigniter分页错误404

时间:2012-03-02 10:52:30

标签: codeigniter pagination

我在codeigniter中有Admin控制器

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中的第一页获取数据,但在分页localhost / sitename / admin / 3中生成的链接产生404错误。 我脚本中的问题在哪里

3 个答案:

答案 0 :(得分:4)

您需要更改:

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

要:

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

如果您需要该网址与admin/3类似,则可以使用route_remap

附注:考虑使用它来获取您的页码而不是URI类:

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

它会做同样的事情,但是在可能的情况下使用控制器方法参数很方便。

答案 1 :(得分:1)

你需要做一些改变。

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

变化

$config['uri_segment'] = 3; 

检查您是否使用.htaccess。如果你不是,那么上面的$ config ['base_url']应该是

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

答案 2 :(得分:0)

如果您在共点诽谤上遇到404错误,请检查以下内容:

1)检查你的控制器它的索引或其他东西,如果它的索引那么base_url应该是:

base_url().'admin/index/pages'如果还有其他事情应该是:

base_url().'admin/somethingelse/pages'

2)检查' uri_segment'通过$this->uri->segment(4)所以你得到了页码然后其他人就会做这个节目。