我对这个问题的标题表示道歉并不是很具描述性,但事实是我不太清楚这个问题的正确术语是什么。我是使用Zend Framework的新手。
想象一下这个网址:www.foo.com/bar 下面的代码采用“bar”并将其传递给索引控制器的加载操作。但是我有另一个名为“mypresentation”的控制器,现在被忽略了,现在下面的路由器已被添加到Bootstrap中。
$route = new Zend_Controller_Router_Route(
'/:prospect',
array('controller'=>'index', 'action' => 'load'));
$router->addRoute('load', $route);
如何让路由器忽略硬编码控制器?
非常感谢任何帮助,如果有更多信息,我会更改标题。
亚历。
FIX:
$prospectRoute = new Zend_Controller_Router_Route(
'/:prospect',
array('controller'=>'index', 'action' => 'load')
);
$route2 = new Zend_Controller_Router_Route(
'mypresentation',
array('controller' => 'mypresentation')
);
$router->addRoute('index', $prospectRoute);
$router->addRoute('mypresentation', $route2);
答案 0 :(得分:1)
在此之前添加另一条路线,首先捕获到mypresentation控制器的所有路线。它按顺序遍历路径,直到找到匹配的第一个路径。
$route2 = new Zend_Controller_Router_Route(
'mypresentation', // what's typed in URL
array('controller' => 'mypresentation') // send here
);
$router->addRoute('mypresentation', $route2);
$router->addRoute('load', $route); // Your original route
如果要捕获所有控制器,请使用
$route3 = new Zend_Controller_Router_Route(
':controller',
array('controller' => ':controller')
);