0

これが私の状況です。製品を表示するページlocalhost/ctc/productと、個々の製品 abcxyz の詳細を表示するlocalhost/ctc/product/abcxyzがあります。製品のリストが長すぎるため、メインページのページネーションが必要になるまでは問題なく動作します。通常のページネーション クラスを使用してページネーションを行っていますが、次のページにアクセスすると、次のように URL が表示されます: localhost/ctc/product/1。では、どうすればこの問題を解決できますか? ありがとう、そして私の片言の英語でごめんなさい。

問題が解決しました。John B と otporan に感謝します。

4

1 に答える 1

1

url の最後のパラメーターに入れることができる正規表現を制限する必要があります。

3 つのルートがあります。

ctc/product
ctc/product/abcxyz
ctc/product/1

2 番目のルートは最後のパラメーターとして文字列のみを受け入れ、3 番目のルートは最後のパラメーターとして数値のみを受け入れることができることをルーター メカニズムに説明する必要があります。

次のように実行できます。

$route['ctc/product/([a-z]+)'] = "controller/method/$1";
$route['ctc/product/([0-9]+)'] = "controller/method/$1";

したがって、URI に同じ数の「params」を持つ 2 つのルートがありますが、ルーターは違いを認識しています。1 つは最後のパラメーターとして文字列を持ち、最後のルートは最後のパラメーターとして整数を持ちます。

これをローカルサーバーでテストする時間がありませんでした。しかし、これがどのように機能するかを理解する必要があります。

ここでドキュメントを読んでください: Codeigniter Routing

于 2012-10-10T18:55:55.747 に答える