2011-12-16 144 views
0

我有以下代码:Zend Framework的主机路由

$route = new Zend_Controller_Router_Route_Hostname("test", array('controller'=>'mycontroller')); 

这工作得很好,并将请求重定向到“myController的”索引操作。

我需要做的是能够调用以下网址:

http://test/myaction 

如果所要求的动作是mycontroller-> myaction

没有人有线索?

谢谢。

回答

0

documentation

主机名路由可以,但不应该被用作是。这背后的原因是,一个主机名路由本身将匹配任何路径。所以你需要做的是将一个路径路由链接到主机名路由。这是通过调用$hostnameRoute->chain($pathRoute);来完成的。通过这样做,$hostnameRoute不会被修改,但会返回一个新路由(Zend_Controller_Router_Route_Chain),然后可以将其发送给路由器。

鉴于您的主机名路由中没有实际的变量组件,这是相当多余的。如果您的路线没有可变部分,您最好坚持使用Zend_Controller_Router_RouteZend_Controller_Router_Route_Static

+0

我不确定我是否明白你的意思。将会有多个主机路由。有些人,比如这个例子,会有不同的动作。 我想要实现的是让主机确定控制器,如果没有指定路径,请使用索引操作。如果有任何行动被指定。所以: `code`http://测试/ 将使用和myController的指标作用,而: `code`http://测试/ myaction/ 将使用和myController的的myaction行动。 – 2011-12-17 16:00:26