【问题标题】:codeigniter pagination error 404codeigniter分页错误404
【发布时间】:2012-03-02 10:52:29
【问题描述】:

我在 codeigniter 中有管理控制器

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 错误。 我的脚本哪里有问题

【问题讨论】:

    标签: codeigniter pagination


    【解决方案1】:

    你需要改变:

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

    收件人:

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

    如果您需要 url 类似于admin/3,您可以使用route_remap

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

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

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

    【讨论】:

      【解决方案2】:

      你需要做一些改变。

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

      改变

      $config['uri_segment'] = 3; 
      

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

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

      【讨论】:

      • 我同意@itachi
      【解决方案3】:

      如果您在 codigniter 分页上遇到 404 错误,请检查以下内容:

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

      base_url().'admin/index/pages' 如果是别的东西,它应该是:

      base_url().'admin/somethingelse/pages'

      2 ) 通过$this->uri->segment(4) 检查“uri_segment”,这样您就得到了页码,然后其他人将执行 codiegniter。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        相关资源
        最近更新 更多