The code below generates pagination using query strings. However, there is no leading ?
. So, I get something like this: http://localhost/index.php/search/&limit=10
. Any ideas why?
this->load->library('pagination');
$config = array();
$config['base_url'] = 'http://localhost/index.php/search/';
$config['total_rows'] = 200;
$config['per_page'] = 10;
$config['num_links'] = 4;
$config['full_tag_open'] = '<ol>';
$config['full_tag_close'] = '</ol>';
$config['first_link'] = 'First';
$config['first_tag_open'] = '<li>';
$config['first_tag_close'] = '</li>';
$config['last_link'] = 'Last';
$config['last_tag_open'] = '<li>';
$config['last_tag_close'] = '</li>';
$config['next_link'] = 'Next';
$config['next_tag_open'] = '<li>';
$config['next_tag_close'] = '</li>';
$config['prev_link'] = 'Previous';
$config['prev_tag_open'] = '<li>';
$config['prev_tag_close'] = '</li>';
$config['cur_tag_open'] = '<li class="active">';
$config['cur_tag_close'] = '</li>';
$config['num_tag_open'] = '<li>';
$config['num_tag_close'] = '</li>';
$this->pagination->initialize($config);
echo ($this->pagination->create_links());
EDIT 1:
http://codeigniter.com/forums/viewthread/161263/
EDIT 2:
The docs seem to suggest that what I did should work: http://codeigniter.com/user_guide/libraries/pagination.html
$config['page_query_string'] = TRUE;
By default, the pagination library assume you are using URI Segments, and constructs your links something like
http://example.com/index.php/test/page/20
If you have $config['enable_query_strings']
set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string']
set to TRUE
, the pagination link will become.
http://example.com/index.php?c=test&m=page&per_page=20
I've run into this myself. When using query strings, CodeIgniter has to assume you have other query string parameters (BUT, CI assumes you're using query string parameters to map your controller and method...). I like using query string for stuff like filtering results and such, while still using the basic routing options in the URI (like you).
I've had to live with the ?& personally, but I suppose you could extend the Pagination library like so (long function, sorry):