在我的routes.ini文件中,我有这些路线,并且会有更多类似于此的方法,我如何制作一条可以全部或某些方法的路线?
;howitworks
routes.howitworks.route = "howitworks.html"
routes.howitworks.defaults.controller = "index"
routes.howitworks.defaults.action = "howitworks"
;howtopost
routes.howtopost.route = "howtopost.html"
routes.howtopost.defaults.controller = "index"
routes.howtopost.defaults.action = "howtopost"
;terms & conditions
routes.howtopost.route = "terms.html"
routes.howtopost.defaults.controller = "index"
routes.howtopost.defaults.action = "terms"
答案 0 :(得分:0)
您使用的是哪个版本的Zend Framework?
我将假设ZF1.12 - Zend Framework 1.12 - Using Zend_Config for Routes
routes.page.type = "Zend_Controller_Router_Route_Regex"
routes.page.route = "([a-z0-9]+)\.html"
routes.page.defaults.controller = "index"
routes.page.map.action = 1
我认为你所追求的是上面的内容 - 它正在对小写字母和以.html结尾的数字进行正则表达式检查(例如“howitworks.html”)。然后将Action设置为捕获的参数(在此示例中为howitworks)。
我模糊地回想起当我第一次开始玩路由时我自己尝试这个 - 我认为在路线末端使用.html会有问题吗?我最终通过引导文件进行路由。
我希望这会有所帮助:)
考虑从发送到动作的字符串中删除.html
的问题,我记得我做不到。我所做的是将所有页面都作为一个参数将所有页面泵入一个动作,然后在控制器中调用正确的页面。
routes.page.type = "Zend_Controller_Router_Route_Regex"
routes.page.route = "([a-z0-9]+)\.html"
routes.page.defaults.controller = "index"
routes.page.defaults.action = "page"
routes.page.map.url = 1
在pageAction
函数中,我将检索url参数($this->getRequest()->getParam('url');
),将.html
剥离结束并对结果执行某些操作(在我的情况下,我获取了页面来自基于url的数据库)