Yii CBaseUrlRule - 控制器操作的命名参数

时间:2014-11-20 09:30:19

标签: php yii

我有一个子类,可以自定义地解析扩展了CBaseUrlRule的URL。

parseUrl()函数必须返回'controller/action'的字符串,但我想要做的是能够将命名参数传递给该操作。这可能吗?

例如,网址可能是:

catalogName /品牌/ brandName /产品/ productname /

我想要的是将该路径重定向到Catalog的索引操作,该操作具有:

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

我会制作一个简单的网址规则,但之后我需要该类在解析网址之前处理某些信息。

1 个答案:

答案 0 :(得分:0)

您可以通过在main.php中定义Named Parameter来使用rules,例如:

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