我有两条类似的路线为我的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