2012-10-25 62 views
1

我是Zend Framework的新手。我有一個頁面,就是:避免在Zend Framework路由中使用「/ index/index」兩次

http://localhost/demo/public/index/index/catid/art 

我想改變這種狀況到

http://localhost/demo/public/art 

我不知道該怎麼做。

另外,它爲什麼要把index兩次?即使我的分頁有,如:

http://localhost/demo/public/index/index/page/2 

在我看來有點煩人。我想分頁是

http://localhost/demo/public/page/2 

有沒有辦法做到這一點?謝謝!

+0

你真的需要由具有「/演示/演示/公/」,在每一個URL前綴來迷惑你的問題在你的控制器的網頁PARAM?我不得不假設你的baseURL從'/ demo/demo/public /'開始。 – Layke

+0

好的,我修好了。 – raygo

回答

2

缺省路由的工作原理是利用:

/module/controller/action

所以,如果你調用一個模塊「默認」,並稱之爲「指數」你的控制器,以及所謂的「指數」的操作,那麼最指代具體的行動冗長的方法是:

/module/controller/action

爲了建立一個路線,你可以使用:

$route = new Zend_Controller_Router_Route(
      'page/:page', 
      array(
       'module' => 'default' 
       'controller' => 'index', 
       'action' => 'index' 
      ), 
      array(
       'page' => '\d+' 
      ) 
     ); 

然後,您可以得到使用

$this->getRequest->getParam("page");

+0

它像分頁的魅力一樣工作。第一個例子我該怎麼做?隱藏參數? – raygo

+0

你可以找出這一個。 :)我幫助你解決了更困難的例子。找到http://framework.zend.com/manual/1.12/en/zend.controller.router.html#zend.controller.router.routes.static – Layke