2010-12-01 35 views
8

我有以下途徑:Router_Route可選參數

 $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)); 

我希望能夠可選參數「過濾器」添加到這個路線。所以,我可以使用以下網址:

http://example.org/default/list/filter/all/lname/asc/1http://example.org/default/list/lname/asc/http://example.org/default/list/filter/all

無論是一個人應該工作。我試圖在路由中放置一個可選參數,但沒有奏效。有任何想法嗎?

回答

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+' 
    ) 
); 
+1

爲什麼不,只是忽略它? – 2010-12-01 17:02:06