是否有优先级urlManager规则?

时间:2013-08-31 06:55:14

标签: php yii

在我的Yii测试应用中,我有两种类型的网址。示例如下: -

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 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>

根据此规则,我的第一个网址似乎格式不正确,因此会显示为

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

另一只手上的第二个网址显示正常

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

我们应该遵循urlManager中的规则优先级吗?

1 个答案:

答案 0 :(得分:0)

将首先使用与URL匹配的任何规则。

在您的情况下,只需切换两个规则的顺序。这是因为你的slug规则也匹配数字,包括那些只有ID的数据。如果您切换规则,将首先捕获带有数字作为ID的规则,然后捕获具有非数字ID的规则。