FuelPHPでindex.phpを含むURI(mod rewriteで省略しない)場合、
paginationのリンク生成が正常に動作しないことを確認しました。
■例
http://localhost/app/public/index.php/aaa/bbb/list
■コントローラ: bbb
■メソッド:list
■paginationのconfig
$pagination = Pagination::forge(‘default’, array(
‘pagination_url’ => ‘/app/public/index.php/aaa/bbb/list’,
‘uri_segment’ => 4,
‘total_items’ => $count,
‘per_page’ => $this->per_page,
‘));
この場合、paginationで生成されるURLは、以下のようになりました。
http://localhost/app/public/index.php/aaa/bbb/2
※本来であれば、http://localhost/app/public/index.php/aaa/bbb/list/2となるはず
上記の例をmod rewriteでindex.phpを省略させた場合、正常に動作し、以下のURLが生成されました。
http://localhost/app/public/aaa/bbb/list/2
paginationのコードを追ったところ、以下の部分を変更することで正常に処理されるようになりました。
■FuelPHP 1.6の場合
543行目
○修正前
$segs[$this->config['uri_segment'] - 1 + $seg_offset] = '{page}';
○修正後
$segs[$this->config['uri_segment'] + $seg_offset] = '{page}';
この事象は恐らくバグだと思われます。
これはあくまで暫定の対処方法です。