쿼리 문자열을 사용하여 Codeigniter 페이지 매김을 구현하려고하지만이 문제가 몇 개 있습니다. 나는 매김에 대한 쿼리 문자열을 사용하는 그래서 쿼리 문자열을 사용하는 Codeigniter 페이지 매김
$config['page_query_string'] = TRUE;
에 전환했지만 지금까지 내가 이것을 볼 수 정말 당신이 컨트롤러 및 방법 라우팅을 위해 쿼리 문자열을 사용하는 경우 일 것입니다. 그러나 내 경우에는 여전히 라우팅을 위해 URI 세그먼트를 사용하고 있지만 페이지 매김, 결과 필터링, 검색 등을 위해 쿼리 문자열을 사용하려고합니다. http_build_query()를 사용하여 URL을 다시 생성하면 쿼리 문자열이 전달되어 per_page (나는 오프셋으로 이름을 바꾼다.) 첫 번째 페이지 이후의 페이지 매김 링크에 두 번 쓸 수있다. 그 이유는 쿼리 문자열을 다시 만들 때 오프셋은 후속 페이지의 $ _GET에 이미 있고 CI는이 태그를 두 번 표시하도록 추가하기 때문입니다. 아래의 코드에서는 $ _GET에서 원래 per_page 쿼리 문자열을 제거 했으므로 쿼리 문자열을 다시 작성하지 않고 CI가 create_links() 페이지 매김 중에이를 추가합니다. 나는 이것이 의미가 있는지 또는 이것을 다루는 더 깨끗한 방법이 있는지 확인하고 싶었다.
// load pagination library
$this->load->library('pagination');
// set pagination base url
$config['base_url'] = base_url('accounting/bank/reconcile-account1/account/' . $bank_account_id) . '/?';
// assign current $_GET parameters to local variable as we need to remove offset each time we rebuild query
// string otherwise it gets appended twice to url
$get = $_GET;
// unset the offset array item
unset($get['offset']);
// build first url link
$config['first_url'] = base_url('accounting/bank/reconcile-account1/account/' . $bank_account_id) . '/?' . http_build_query($get);
// if $get contains items then build these back onto the url
if (count($get) > 0) $config['suffix'] = '&' . http_build_query($get);
// set the total number of rows
$config['total_rows'] = $result['total_num_txns'];
// set the number of items per page
$config['per_page'] = $filter->limit;
// initialise the pagination config
$this->pagination->initialize($config);
왜 라우터를 사용하지 않고 쿼리 문자열을 사용하고 있습니까? 나는 당신이 달성하고자하는 것에 대해 조금 확신하지 못합니다. 간단한 해결책은 라우터를 사용하는 것이지만 과부하로 말하면, 메소드에 기본값을 전달하여이 작업을 수행 할 수 있습니다. 브라우저에서 uri를 숨기려면 ajax를 통해 메소드를 호출하십시오. – Philip
과거에는 URL 끝에 페이지 당 항목 수가 항상 추가되는 uri 세그먼트를 사용할 때 문제가 발생했습니다. 검색 매개 변수를 키 쌍으로 보내려면 uri_to_assoc을 단일 URI 세그먼트로 사용하고/per_page/10으로 처리하지 않으므로 Codeigniter에서 url 끝에 붙이는 페이지 당 값을 키로 처리합니다. –