次のように私はルートへのURLをしようとしています:CodeIgniterのルーティング(正規表現)
some_controller::method($param)
にマッピングされ
domain.com/param/some_controller/method/
私は正規表現を習熟していないよ、私は誰かが私を始めるのを手伝うことができたら、本当に感謝していますか?または、良いチュートリアルやサンプルを教えてください。
次のように私はルートへのURLをしようとしています:CodeIgniterのルーティング(正規表現)
some_controller::method($param)
にマッピングされ
domain.com/param/some_controller/method/
私は正規表現を習熟していないよ、私は誰かが私を始めるのを手伝うことができたら、本当に感謝していますか?または、良いチュートリアルやサンプルを教えてください。
同じ効果を、しかし、CodeIgniterのスタイルは:
//remember that custom routes need to go _after_ ci's default routes, as they're executed in the order you provide them
$route['default_controller'] = "welcome";
$route['404_override'] = '';
//exception 1 to your regex here
//exception 2 to your regex here
//so on...
$route['(:any)/(:any)/(:any)'] = "$2/$3/$1";
これは現在、混乱せずにルーティングでこれを行う方法がないため、少し面倒です。これを試すことができます:
$route['([^/]+)/([^/]+)/([^/]+)'] = "$2/$3/$1";
しかし、これはどんなURLにも適用されると言います。これは通常のコントローラを混乱させます。あなたはより良いあなたがこのルートで処理しなければならない要求を識別するために、いくつかの接頭辞を追加提供しています。たとえば
$route['a/([^/]+)/([^/]+)/([^/]+)'] = "$2/$3/$1";
$route['(:any)/some_controller/method/'] = "some_controller/method/$1";
はあなたのparamが多数ある場合代わりに(:num)
を使用してください。お使いのコントローラ
function method($my_param) {
echo 'my param is '. $my_param;
}
RLの例では
:あなたのビューが
view.php
<html>
<body>
link to <?= anchor('1/blog/entry/','my first post'); ?>
link to <?= anchor('2/blog/entry/','my second post'); ?>
</body>
</html>
次のようになります
は 'domain.com/paramです/ some_controller/method/'populの文字列特定の変数にated?同様に、 'http(s)://'プロトコルが決してそこに存在しないと仮定することができ、文字列は常にその正確な形式であるかどうか? (私はCIに精通していません) – Wiseguy
@Wiseguy - そのすべてがCIによって処理されます。また、いくつかの書き換えルールがありますので、URLは_actually_domain.com/index.php?param/some_controller/method' – tbridge