1

如果我们在 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/fooBar 而不是/my-good/foo-bar

4

1 回答 1

1

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

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

URL 视图助手根据您的应用程序中设置的路由组装一个链接。

路由根据URL匹配请求。

这实际上归结为关注点分离。助手仅使用路由,并且路由仅处理 URL 中的内容。根据路由获取正确的类名是调度程序的关注点。

最好让路由只处理 URL 中的内容,因为调度程序可以更改。使用标准调度程序可能对您有用的东西可能不适合使用不同调度程序的其他人。

为了完成您的要求,您始终可以使用自定义视图助手来为您进行转换,但前提是您永远不会更改调度程序。

于 2011-08-03T19:27:05.620 回答