Zend框架路由器默认将大写字母替换为破折号


Zend framework Router replaces capital letters with dashes by default?

如果我们在zend控制器和动作之间使用大写字母例如在默认模块中我们创建

class MyGoodController extends Zend_Controller_Action {
public fooBarAction()
{
}
}

则访问此操作浏览器url如下mysite.com/my-good/foo-bar

是否在zf中添加了默认的zend路由器来管理这个转换?因为我想使用URL视图助手为我生成正确的链接,它不为例如在视图

$this->url(array('action'=>'fooBar','controller=>'myGood')); 

没有生成正确的url,它生成/myGood/fooBa r而不是/my-good/foo-bar

如评论所述,您需要使用:

$this->url(array('action'=>'foo-bar','controller=>'my-good'));

URL视图帮助器根据应用程序中的路由集组装链接。

路由根据URL匹配请求。

归根结底是关注点的分离。helper只使用路由,路由也只处理URL中的内容。根据路由获取适当的类名是调度程序所关心的。

最好让路由只处理URL中的内容,因为调度程序可能会更改。对于使用标准调度器的用户,可能不适合使用其他调度器的用户。

为了完成你所要求的,你总是可以使用一个自定义视图帮助器来为你完成转换,但前提是你从不更改调度程序。