Router_Route带有可选参数

Chr*_*n-G 8 php zend-framework

我有以下路线:

        $gridRoute = new Zend_Controller_Router_Route(
        ':module/:controller/list/:order/:dir/:page',
        array (
            'module' => 'default',
            'controller' => 'index',
            'order' => '',
            'dir' => 'asc',
            'page' => 1,
            'action' => 'list'
        ),
        array (
            'page' => '\d+'
        )
    );
    $router->addRoute('grid', $mainRoute->chain($gridRoute));
Run Code Online (Sandbox Code Playgroud)

我希望能够为此路由添加可选参数'filter'.所以我可以使用以下网址:

http://example.org/default/list/filter/all/lname/asc/1http://example.org/default/list/lname/asc/http://example.org/default/list /过滤/所有

任何一个都应该工作.我试图在Route中放置一个可选参数但是没有用.有任何想法吗?

net*_*der 12

通常,在Zend的路由器中,与PHP一样,可选参数是具有默认值的参数.为filter参数添加一个:

$gridRoute = new Zend_Controller_Router_Route(
    ':module/:controller/list/:order/:dir/:page/:filter',
    array (
        'module' => 'default',
        'controller' => 'index',
        'order' => '',
        'dir' => 'asc',
        'page' => 1,
        'action' => 'list',
        'filter' => null, // define default for filter here
    ),
    array (
        'page' => '\d+'
    )
);
Run Code Online (Sandbox Code Playgroud)