2009-07-09 7 views
3

私はCodeIgniterのルートに以下のURLのように、すべての必要なCodeIgniterのルートのヘルプ

admin/users/page/:num 
admin/accounts/page/:num 
members/results/page/:num 
products/page/:num 

はそれぞれ

admin/users/index 
admin/accounts/index 
members/results/index 
products/index 

に転送されます。毎回ルートを手動で設定するのではなく、トリックを行うことができる1つの正規表現が必要です。

具体的には、page/:numで終わるURLは、それぞれのコントローラのインデックスメソッドに転送する必要があります。そして、:numによって、私は任意の数を意味します。

これは可能ですか?

答えて

4

私は本当にあなたがそれをしたいと思っているわけではありません。

$route['([a-z]+)/page/:num'] = "$1/index"; 
$route['([a-z]+)/([a-z]+)/page/:num'] = "$1/$2/index"; 

cmiiw:

はあなたsystem/application/config/routes.php(1行のソリューションを考えることができませんでした)にこれらの行を追加します(私はあなたの代わりにURLからページ番号を取得したいと仮定します)。

+0

ありがとうございます、魅力的な作品です!なぜなら私のカスタムページネーションライブラリは/ path/to/controller/page/$ pageのようなリンクを作成するからです。そして、私は手動で各ルートを設定したくありません。これを行うより良い方法はありますか? –

+0

コントローラのインデックスメソッドを使用していない場合。 'search'のようなメソッドを使うと、'/users/search/page/7'はクラス "Users"、メソッド "search"とパラメータ "page"と7に変換されます。 – Boldewyn

+0

は現在のこの方法では、config(この例ではインデックス)で指定した1つのメソッドを使用することに制約されます。そして、はい、私はCIのデフォルトのページネーションが時々好まれないことを知っています。 – andyk

関連する問題