Yii CBaseUrlRule - именованные параметры для действия контроллера

0

У меня есть дочерний класс, который анализирует URL-адреса, которые расширяют CBaseUrlRule.

Функция parseUrl() должна возвращать строку, которая является 'controller/action', но я хочу, чтобы она могла передавать именованные параметры для этого действия. Это возможно?

Например, URL может быть:

catalogName/brand/brandName/product/productname/

Я хочу перенаправить этот путь на действие индекса каталога, причем это действие имеет:

public function actionIndex($catalogName, $brandName, $productName) {
    //do smthng
}

Я бы сделал простое правило URL-адреса, но затем мне нужно, чтобы класс обрабатывал определенную информацию перед разбором URL-адреса.

Теги:
yii

1 ответ

0

Вы можете использовать Именованный параметр, отклоняя правила в main.php, например:

array(
    'components' => array(
        ......
        'urlManager' => array(
            'urlFormat' => 'path',
            'rules'     => array(
                '<catalogName>/brand/<brandName>/product/<productname>/' => 'catalog/index',
            ),
        ),
    ),
);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню