我有兩條類似的路線爲我的ZF應用程序設置,其中一條工作,其中一條不工作。這一次,它顯示從數據庫中以供用戶查看一個項目,完美的作品:Zend Framework一條工作路線不是
路線在我的引導:
//Static item profile
$route = new Zend_Controller_Router_Route('item/:item_id',
array('controller'=> 'item',
'action'=> 'index'));
$router->addRoute('item', $route);
而且在那裏我得到了項目控制的指數操作的項目編號:
$id = $this->getRequest()->getParam('item_id');
我有這樣的一個在我的後端設置爲允許管理員編輯項目數據:
//Management back end
$route = new Zend_Controller_Router_Route('manage/edititem/:item_id',
array('controller'=> 'manage',
'action'=> 'edititem'));
$router->addRoute('manage', $route);
這是從哪裏獲得的管理控制器的edititem行動ID:
$item_id = $this->getRequest()->getParam('item_id');
出於某種原因,如果我定位到在這一個ITEM_ID總是出現空/管理/ edititem /:ITEM_ID,雖然它的工作原理如果我轉到/ manage/edititem/item_id /:item_id,那完全沒問題。如果我嘗試使用自定義路線,爲什麼路線不工作?它不會被更早的路由所捕獲,因爲它仍在執行edititem操作中的代碼,我不會錯過任何分號,並且我複製並粘貼它,所以我懷疑它是一個錯字。我的路線有什麼問題?
在你的控制器中用'$ this-> getFrontController() - > getRouter() - > getCurrentRouteName()'檢查你的路由是否匹配。同時檢查你的路線以正確的順序添加(首先是最通用的)。 – ByteNudger 2012-07-15 10:08:07
出於某種原因,它總是默認出現。它不匹配另一條路線,但由於某種原因,它似乎並沒有捕捉到這條路線。 – jaimerump 2012-07-15 14:25:03
看起來你的路線沒有添加。你可以用'$ this-> getFrontController() - > getRouter() - > getRoutes()'(你應該使用'array_keys()'只打印路由名稱)來驗證你定義/添加的所有路由是否可用。如果路由不在那裏,你應該在'Bootstrap.php'中檢查你的代碼,因爲你可能會覆蓋一個變量或者不添加路由。您應該在您的'Bootstrap.php'和控制器中打印名稱,以查看是否有更改這兩者之間路線的內容。 – ByteNudger 2012-07-15 15:04:51