regex - Zend Route Regex 和可选参数

标签 regex zend-framework router routes

我想使用这样的 URL:

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

“汽车”是可变的,可以是任意的。我像这样解决了“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”。但是我无法在 Controller 中使用 $this->_getParam() 获得 url 的其余部分。

我怎样才能做到这一点?谢谢。

最佳答案

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

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

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

关于regex - Zend Route Regex 和可选参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4541822/

相关文章:

javascript - UnderscoreJS 插值正则表达式同时支持 mustache 和原始?

zend-framework - 调用 _redirect 时 Firebug 中没有输出

laravel - BoundMethod.php中不存在类App\Providers\Router

regex - 为什么此正则表达式不返回任何匹配项?

java - 在特定的其他子字符串之后获取子字符串的最有效方法

php - 减少包含文件的数量

javascript - react : how to pass props through a Link from react-router-dom?

linux - 在linux上通过vpn路由域000.000.x.x下的所有ip

C#:向字典添加数据

php - 为什么这段代码全是斜杠