在我的IndexController中,我目前有indexAction(主页),loginAction和logoutAction。我正在尝试从网址中删除“/ index /”以获取domain.com/login而不是domain.com/index/login。
实现这一目标的最简洁方法是什么?我们可以使用RegEx吗?我不希望在URL中使用/ index /。
我认为可以改进的当前解决方案如下。另外,addRoute()中的第一个参数是做什么的?
class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
protected function _initViewHelpers()
{
$front = Zend_Controller_Front::getInstance();
$router = $front->getRouter();
$router->addRoute('login',
new Zend_Controller_Router_Route('login/*', array(
'controller' => 'index',
'action' => 'login'
))
);
$router->addRoute('logout',
new Zend_Controller_Router_Route('logout/*', array(
'controller' => 'index',
'action' => 'logout'
))
);
}
}
答案 0 :(得分:2)
没有什么可以推动的,你必须为每个动作创建路线。这将允许您在不修改代码的情况下更改路由默认值(模块/控制器/操作)。
第一个参数是路径名称,您必须在视图中使用url()帮助程序:
<a href="<?php echo $this->url(array(), 'login', true); ?>">Login</a>
更新。如果您只想在url中使用一条没有“index”的路由,则可以使用此类路由:
$router->addRoute('default',
new Zend_Controller_Router_Route(':action/*', array(
'controller' => 'index',
))
);