0

ルーティングに小さな問題があります。

私のルート:

$route['category/(:any)/(:num)'] = "site/index/$2"; //not working
$route['category/(:any)'] = "site/index"; //not working
$route['category/(:any)/(:any)'] = "site/view/$2"; // working
$route['Search'] = "site/search"; // working

私が欲しいもの: http://example.com/category/Home - サイト/インデックス関数 を呼び出しますhttp://example.com/category/Home/2パラメータ $2 でサイト/インデックス関数を呼び出します それらで 404 エラーが発生します2つのルール。

私が試したのは、category/(:any)/(:num) のパラメーターをエコーすることで、エコーしました。このエコーは index 関数内にありました。ビューとモデルは、私が宣言したパスに存在します。インデックス ページ自体は、それなしでは機能しません。したがって、問題はルーティングにあると思います

最も興味深いのは、category/(:any) ルートを site/view に変更すると機能するが、site/index を設定すると機能しないことです。私がそこに設定したとしても、サイトだけです。

4

1 に答える 1

0

あなたがやろうとしていることは、siteクラスを「デフォルトコントローラー」にすることだと思います。これを試してください:

$route['default_controller'] = "site";
$route['(:any)'] = "site/view/$1";
$route['(:num)'] = "site/index/$1";

site/view/$1あなたが何をしようとしているのかわからないので、次のsite/index/$1ように動作します:

example.com/someaction一致し、文字列パラメーターとしてコントローラーのメソッドを$route['(:any)']呼び出します。viewsitesomeaction

example.com/2コントローラーのアクションに一致して、整数パラメーターとして$route['(:num)']呼び出します。indexsite2

example.com/adminコントローラーのindexアクションを呼び出しますadmin

example.com/admin/categoryコントローラーのcategoryアクションを呼び出しますadmin

于 2013-07-05T15:46:34.760 に答える