2017-06-09 20 views
2

私は、次のように私のページネーション機能のために次のコードを持っています:上記のコードからCodeigniterのページ設定でgetパラメータを置き換えますか?

public function news() 
    { 
     $this->load->library('pagination'); 
     $config = array(); 

     $config["base_url"] = base_url() . "index.php/welcome/news"; 
     $this->load->model('news_model'); 
     $total_row = $this->news_model->record_count(); 
     $config["total_rows"] = $total_row; 
     $config["per_page"] = 1; 
     $config['use_page_numbers'] = TRUE; 
     $config['num_links'] = $total_row; 
     $config['cur_tag_open'] = '&nbsp;<a class="current">'; 
     $config['cur_tag_close'] = '</a>'; 

     $config['page_query_string'] = TRUE; 
     $config['next_link'] = 'Next'; 
     $config['prev_link'] = 'Previous'; 
     $config['first_url'] = $config['base_url'].'?'.http_build_query($_GET); 
     $this->pagination->initialize($config); 
     if($this->uri->segment(3)){ 
     $page = ($this->uri->segment(3)) ; 
     } 
     else{ 
     $page = 1; 
     } //echo $config["per_page"].'/'.$page; exit(); 
     $this->load->model('news_model'); 
     $data["results"] = $this->news_model->fetch_data($config["per_page"], $page); 
     $str_links = $this->pagination->create_links(); 
     $data["links"] = explode('&nbsp;',$str_links); 

     $this->load->model('news_model'); 
     $data['lt_news'] = $this->news_model->get_lt_newsletter(); 
     $data['rm_news'] = $this->news_model->get_rm_newsletter();   
     $this->load->view('newsletter/newsletter',$data); 
    } 

、URLのブラウザは次のように示しています -

http://localhost/ins/index.php/welcome/news?per_page=2 

私のように詰まったようです次のように変更する方法:

http://localhost/ins/index.php/welcome/news/2 

どうすればいいですか?私はcodeigniterのページネーションに初心者ですので、上記のようにURLパラメータを変更する必要があるかどうかわかりません。

答えて

2

設定$config['page_query_string']

public function news($pageNum) 
    { 
     ... 
     $page = $pageNum 
     ... 
    } 

その後、あなたはそれを経由してアクセスすることができるはずです。あなたは $の設定[ 'enable_query_stringsをお持ちの場合は

http://example.com/index.php/test/page/20:DOC https://www.codeigniter.com/userguide3/libraries/pagination.html#customizing-the-paginationから

:デフォルトでは

、ページネーションライブラリは次のように、あなたはURIセグメントを使用していると仮定 し、あなたのリンクを構築します']をTRUEに設定すると、クエリ文字列を使用して が自動的に書き換えられます。このオプションは、 を明示的に設定することもできます。 TRUEに設定する$の設定[「page_query_string」]を使用して、 ページネーションリンクになるだろう:

http://example.com/index.php?c=test&m=page&per_page=20

+0

はい、それは私が必要な方法のように働いていたが、ちょうどたいが情報のために知っている、の目的は何であります本当ですか? – Keynes

+2

ページングにクエリ文字列を使用する方が好きかもしれません。例えば。 http://localhost/index.php/category/123/thread/123/2 <<これはURLセグメントでは多すぎる可能性があります。 –

+0

Chrisさん、ありがとうございました。ページングのロジックがどういうものか理解したいと思います。私はまた私の友人からの投稿を見た。 https://stackoverflow.com/questions/44450973/codeigniter-pagination-logic-to-show-2-lists-per-page – Keynes

1

そうのように、ページに関数のパラメータを作成します。falseに

http://localhost/ins/index.php/welcome/news/2 
関連する問題