私はcodeigniterのページネーションクラスを使用しています:
これをコントローラーに入れます:
$config['base_url'] = 'http://localhost/project/index.php/municipio/';
$config['total_rows'] = count($this->data['municipios']);
$config['per_page'] = 2;
$config['uri_segment'] = 2;
$config['first_link'] = false ;
$config['last_link'] = false ;
$config['prev_link'] = false;
$config['next_link'] = false;
$this->pagination->initialize($config);
これは、モデル関数を呼び出して de DB 行を取得する方法です。
$this->data['municipios'] = $this->Municipio_model->obtenerMunicipiosPaginacion($pagina,$config['per_page']);
これは私がモデルに持っているものです:
function obtenerMunicipiosPaginacion( $pagina , $registros_por_pagina )
{
$limite_inferior = ($pagina * $registros_por_pagina) - $registros_por_pagina;
$limite_superior = $registros_por_pagina;
$query = 'SELECT m FROM Entities\Municipio m ORDER BY m.nombre ASC';
$create_query = $this->doctrine->em->createQuery($query)->setFirstResult($limite_inferior)->setMaxResults($limite_superior);
$variable = $create_query->getResult();
return $variable;
}
ビューでは、クラスは次のようなリンクを出力していますが、これは問題ありません。
1 2 3
1 つのリンクは完全に機能し、ページ municipios/1 に移動します
2 リンクは完全に機能し、ページ municipios/2 に移動します
3 リンクでページ municipios/6 に移動します
問題はDBクエリにあるのではなく、ページネーションクラスの構成に違いないと確信しています。
この質問をよく見ましたが、問題を解決する答えが見つかりませんでした。
編集:
今はうまくいくようです。次の行を追加しました。
$config['use_page_numbers'] = TRUE;