La primera página de Paginación de Codeigniter siempre es una página actual

Estoy tirando de mi pelo en este. Estoy usando la biblioteca de paginación de CodeIgniters y en este momento siempre está atorada en la página 1 como la página actual. Revisé un montón de preguntas sobre StackOverflow y no tengo el mismo problema que cualquier otra persona.

Aquí está mi estructura de url

website.com/leaders/page/[page_number] 

Aquí está el código de paginación en mi controlador

  $this->load->library('pagination'); $config['per_page'] = $query_config['limit']; $config['base_url'] = base_url() . 'leaders/page/'; $config['total_rows'] = 2000; // I actually use a function for this number $config['full_tag_open'] = '
'; $config['full_tag_close'] = '
'; $config['first_link'] = '« First'; $config['last_link'] = 'Last »'; $config['use_page_numbers'] = true; $config['uri_segment'] = 3; $this->pagination->initialize($config);

Cuando hago eco de la paginación en la vista, parece que funciona. Las URL en cada enlace son correctas y todo parece estar bien. El último enlace muestra la última URL de la página y la página actual es 1. Sin embargo, cuando hago clic en la página 2 o en cualquier otra página de la paginación, todavía muestra la página 1 como la página actual, aunque la URL es la siguiente

 website.com/leaders/page/2 

Utilicé el $this->uri->segment(3) para tomar el número de página para las consultas de mi base de datos para que el número de página esté en el segmento correcto. Para comprobarlo, establecí los valores de $config['uri_segment'] en 1,2,3,4,5,6 solo para asegurarme.

Descubrí el problema mientras escribía esto, pero todavía estoy confundido

Entonces pensé que tal vez había algo pasando con la url en sí, ya que tengo una ruta que lo dirige al método de índice en el controlador. Así es como se ve mi archivo de rutas

routes.php

 $route['leaders/page/(:num)'] = 'leaders/index'; $route['leaders/page'] = 'leaders/index'; 

Luego intenté configurar la base_url para la configuración de paginación para enviarla directamente al índice así:

 $config['base_url'] = base_url . 'leaders/index'; 

Ahora parece estar funcionando correctamente. Pero, ¿cómo lo hago para que funcione con la estructura de URL que tenía antes? Simplemente creo que se ve mejor y realmente no necesito un método en el controlador para esto. ¿Hay algo conflictivo en mi archivo routes.php?

Gracias

define cur_page y define el controller como:

 public function index($page=''){ //... $page = ($page!='')? $page : 0; $config["cur_page"] = $page; //... } 

Use esto en su código, espero que esto funcione-

 if ($this->uri->segment(3) > 0) { $offset = $this->uri->segment(3) * $config['per_page'] - $config['per_page']; } else { $offset = $this->uri->segment(3); }