Zend Route Regex和可选参数

时间:2010-12-27 21:03:02

标签: regex zend-framework router routes

我想使用这样的网址:

site.com/car-list/param1/value1/param2/value2

“car”是可变的,可以是任意的。我解决了“site.com/car-list”这样的部分:

    $categoryRoute = new Zend_Controller_Router_Route_Regex(
        '(\b.+\-list\b)',
        array(
            'module' => 'default',
            'controller' => 'search',
            'action' => 'index'
        ),
        array(
            1 => 'productType'
        )
    );

当我需要“productType”参数时,我可以获得“car-list”。但我无法在控制器中使用$ this-> _getParam()获取其余网址。

我该怎么做?感谢。

1 个答案:

答案 0 :(得分:5)

好吧,我不知道如何使用Router_Route_Regex,但是使用Router_Route它会更容易(想想,我用“/”替换“ - ”)

$categoryRoute = new Zend_Controller_Router_Route
    ':car/list/*',
    array(
        'module' => 'default',
        'controller' => 'search',
        'action' => 'index'
    )
);

由于字符串末尾的“/ *”而发生魔术。 :car变量可以通过$ request-> getParam('car');

获得