我按照这个tut(this的副本)为命名参数创建自定义规则。在我的规则数组中,我添加了 2 行来解析向后和向前Assortment[groupCategory]
参数。
'urlManager'=>array(
'showScriptName'=>false,
'urlFormat'=>'path',
'rules'=>array(
'assortment/<Assortment[groupCategory]:\d+>'=> 'assortment/index',
'assortment/<Assortment%5BgroupCategory%5D:\d+>'=> 'assortment/index',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
这很有效:http://tarex.ru/assortment/index/Assortment[groupCategory]/1
yii 将 GET 参数识别Assortment[groupCategory]
为等于 1。
但是,如果从我要求的表格中
http://tarex.ru/assortment/index?Assortment[groupCategory]=2
或者http://tarex.ru/assortment/index?Assortment%5BgroupCategory%5D=2
它不会将其转换为人类可读的 ulr,如下所示:
http://tarex.ru/assortment/index/Assortment[groupCategory]/2
为什么?tut sais 是双向 url manager。
另一方面,当使用路由 post/index 和参数标签创建 URL 时,urlManager 组件也会使用此规则生成所需的 URL /index.php/posts/yii。出于这个原因,我们说 urlManager 是一个双向 URL 管理器。