2010-02-24 18 views
11

Estoy usando codeigniter y su clase de paginación. Funciona perfectamente y se ve algo como esto:CodeIgniter Pagination Problema

«Primera < 2 3 4 5> Última»

Aquí está mi código:

$this->load->library('pagination'); 
$config['base_url'] = base_url().'controlpanel/'; 
$config['first_link'] = 'First'; 
$config['total_rows'] = $count; 
$config['per_page'] = '3'; 
$this->pagination->initialize($config); 
$data['pagination'] = $this->pagination->create_links(); 
$this->load->view('controlpanel', $data); 

tengo este en mis rutas:

$route['controlpanel/(:num)'] = "controlpanel/index/$1"; 

Howe ver, cada vez que llego a una página diferente, es decir, controlpanel/3 - el número 1 siempre es negrita - ¡debería cambiar a 2 o 3, etc.!

¿Por qué no?

Cuando cambio el $config['base_url'] a base_url().'controlpanel/page' entonces hace el trabajo de paginación correctamente por boldening el número correcto - pero el enlace 1 puntos a la URL controlpanel/page que es la página equivocada para mí como la base es simplemente controlpanel.

Gracias por cualquier ayuda.

Respuesta

21

La clase de paginación debe verificar el segundo parámetro, no el tercero (predeterminado).

añadir esto a la matriz de configuración para cambiar esto:

$config['uri_segment'] = '2'; 

Esto no cambia nada, pero ser útil en la creación de la url es necesario. cambiar esta situación:

$config['base_url'] = base_url().'controlpanel/'; 

a esto:

$config['base_url'] = site_url('controlpanel'); 
+0

Gracias por su respuesta Thorpe - He intentado todo lo anterior y lo mismo sucedió. ¿Estás diciendo que per_page es el segmento de la URL que verificará la clase de paginación? Por cierto, estoy usando un archivo htaccess que solo elimina la parte index.php. – Abs

+0

Creo que quería decir '$ config ['uri_segment'] = 2;' ¡He añadido esto y funciona! Por favor edite su pregunta para que otros puedan verla más fácilmente. Tu respuesta provocó un pensamiento en lo que se necesitaba, muchas gracias. ¡No me di cuenta de cómo la clase de paginación obtenía el número de página al que tenía que ir! – Abs

+0

no hay problema. Calculé el error y lo edité hace un tiempo.:) –

0

también poner esta línea

$config['uri_segment'] = 3; 
2

También no se olvide de comprobar hacia fuera para .. $ inboxMessageCount este valor establecido desde el controlador

$ config ['total_rows'] = $ inboxMessage Contar;

Si este valor se establece, es menor que el valor límite, entonces la paginación no se mostrará.

-1
$config['first_tag_open'] = '<li>'; 

$config['first_tag_close'] = '</li>'; 

$config['first_url'] = site_url('your controller url'); 

poner $config['first_url'] como esta para hacer que el trabajo de su primera URL de la etiqueta