簡體   English   中英

Codeigniter 分頁鏈接轉到 404 Page Not Found

[英]Codeigniter pagination link go to 404 Page Not Found

我在 CI 項目中實現了帶有搜索結果的分頁,但是我無法將分頁鏈接轉到下一頁,例如:

我第一次加載時的搜索頁面是http://localhost/ci_project/search ,當我單擊將轉到http://localhost/ci_project/search/2的分頁鏈接時,該頁面顯示404 Page Not Found

有人可以幫我弄清楚我的代碼有什么問題嗎? 我嘗試了很多關於解決方案的建議,但無濟於事,大部分問題來自$config['base_url'] = base_url('search'); ,但它們都沒有幫助。

型號:

public function do_search_count($keywords)
{
    $sql = "SELECT COUNT(*) AS cnt FROM products WHERE MATCH (name, manufacturer) AGAINST ('".$keywords."')";
    $q = $this->db->query($sql);
    $row = $q->row();
    return $row->cnt;
}

public function do_search($keywords, $per_page, $limit)
{
    $this->db->escape($keywords);

    $this->db->where('MATCH (name, manufacturer) AGAINST ("'.$keywords.'") LIMIT '.$per_page.', '.$limit, NULL, FALSE);
    $query = $this->db->get('products');

    if($query->num_rows() > 0){
        return $query->result();
    }else{
        return false;
    }
}

控制器:

function search()
{
    $keywords = $this->input->post('search');

    $searchterm = $this->db_model->searchterm_handler($this->input->get_post('search', TRUE));
    $limit = ($this->uri->segment(2) > 0)?$this->uri->segment(2):0;

    $config['base_url'] = base_url('search');
    $config['total_rows'] = $this->db_model->do_search_count($searchterm);
    $config['per_page'] = 5;
    $config['uri_segment'] = 2;
    $config['use_page_numbers'] = TRUE;
    $choice = $config['total_rows'] / $config['per_page'];
    $config['num_links'] = round($choice);  

    $this->pagination->initialize($config);

    $data['results'] = $this->db_model->do_search(trim($keywords), $limit, $config['per_page']);
    $data['pagination'] = $this->pagination->create_links();
    $data['searchterm'] = $searchterm;

    $data['total'] = count($data['results']);
    $data['title'] = 'Search';

    $this->load->view('header', $data);
    $this->load->view('search', $data);
    $this->load->view('footer', $data);
}

謝謝。

嘗試:

$config['base_url'] = base_url('controller_name/search');
$config['uri_segment'] = 3;

codeigniter 中的http://localhost/ci_project/search/2可能正在嘗試使用通常的配置執行名為2的方法,如果您的方法是search ,請務必調用http://localhost/ci_project/search_controller/search/2處的 url http://localhost/ci_project/search_controller/search/2

如果你因為某種原因想改變配置,你可以從這里開始diggin

試試這個

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

無需更改路由配置,這對我有用。

試試這個:如果你在索引頁面調用索引方法這樣..

'base_url' => base_url('page/index'),

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM