Я следовал этому tut (копия это) для создания собственного правила для именованных параметров. В моем массиве правил я добавил 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 распознает Assortment[groupCategory]
как параметр GET, равный 1.
Но если из формы я запрашиваю
http://tarex.ru/assortment/index?Assortment[groupCategory]=2
orhttp://tarex.ru/assortment/index?Assortment%5BgroupCategory%5D=2
он не преобразует его в удобочитаемый ulr, например:
http://tarex.ru/assortment/index/Assortment[groupCategory]/2
Почему? Тут говорят, что это двусторонний менеджер URL.
С другой стороны, при создании URL-адреса с маршрутом post/index и тегом параметра компонент urlManager также будет использовать это правило для создания желаемого URL-адреса /index.php/posts/yii. По этой причине мы говорим, что urlManager — это двусторонний менеджер URL.