0

私の Yii テスト アプリには、2 種類の URL があります。以下の例: -

http://localhost/testapp/index.php?r=post/view&id=1&slug=maximizing-profit
http://localhost/testapp/index.php?r=category/view&slug=investment

最初の URL には 2 つのパラメーターがあります。idおよび2番目のパラメーターにはパラメーターslugのみがありますslug

そして私のurlManagerには、2つのルールがあります

<controller:\w+>/<action:\w+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action>
<controller:\w+>/<action:\w+>/<id:\d+>/<slug:[a-zA-Z0-9-]+>/' => '<controller>/<action>

このルールでは、最初の URL の形式が正しくないようで、次のように表示されます。

http://localhost/testapp/post/view/maximizing-profit?id=1

一方、2番目のURLは正常に表示されました

http://localhost/testapp/category/view/investment

urlManager に従うべきルールの優先順位はありますか?

4

1 に答える 1

0

最初に URL に一致するルールが使用されます。

あなたの場合、両方のルールの順序を入れ替えるだけです。これは、スラッグ ルールが、ID のみを持つものを含め、数字にも一致するためです。ルールを切り替えると、ID として数字を持つものが最初にキャプチャされ、次に数字以外の ID を持つものがキャプチャされます。

于 2013-08-31T09:14:43.677 に答える