2011-01-25 243 views
0

如何配置Zend_Controller_Router默认使用默认路由?无论出于何种原因未知,它都使用当前路线。默认使用Zend路由器路由

这是造成一些烦人的路由问题,我不想编辑数百个链接来明确使用默认路由是一种合理的解决方案来添加一个自定义路由。

+0

也许你应该添加一些你的代码,一个请求的例子和你想要的路线因为现在,你在说什么d似乎没有任何意义(默认路由 - 顾名思义 - *是*,好吧,默认路由)。顺便说一句,你检查[ZF - 默认路线](http://framework.zend.com/manual/en/zend.controller.router.html#zend.controller.router.default-routes)? – wimvds 2011-01-25 09:05:06

+0

我想他是指URL助手。 – 2011-01-25 10:25:51

回答

0

你的问题并不明显,令人困惑,我会尽力。

我打算假设你不是指Zend_Controller_Route,但实际上是在讨论你的观点中产生的链接。

您可以使用baseUrl()这样

<a href="<?=$this->baseUrl("about-us")?>">About Us</a> 

您可以设置baseUrl在你的引导这样

Zend_Controller_Front::getInstance()->setBaseUrl("/"); 

如果在本地工作,你可能需要将其设置为这样的事情

Zend_Controller_Front::getInstance()->setBaseUrl("/my-app/public"); 

使用baseUrl() in您的观点现在将使用该路径基于所有网址。请记住,您必须将您的链接包含在baseUrl()中才能使用。

url()帮助程序对此没有用处,它用于在希望维护请求对象的当前参数的情况下执行分页等操作。

希望有所帮助。

0

从马修威尔O'Phinney:

你上面引述的逻辑是内 汇编()方法。组装()可能调用 有或没​​有路由 已发生。默认情况下, 的假设是,如果没有提供路由名称 ,则使用当前匹配的路由 - 如果匹配是 从未执行过(或没有路由匹配),则使用'默认'路由。

使用当前 匹配的路由的理由是,通常你会 相同的架构 内路由 - 作为一个例子,如果你是一个RESTful的范式,你的大多数 链接将内当前 资源。如果在没有指定路线我们是按照您的 建议,利用“默认” 路线(在 至少,这就是我理解你 说的话),因为Rest_Route不是 默认路由,每一个呼叫 汇编()将需要使用 路由名称 - 其他人会嘲笑导致“头痛。“

就个人而言,我希望还是明确 和总是指定路线名称; 这样,我确切地知道什么路线我在我 打靶装配(),这 使得调试更加容易

听起来像唯一的解决方案是设置每个链接的路由使用'默认',而不是将它留空。