脚本宝典收集整理的这篇文章主要介绍了php – 使用Zend Framework中的Zend_Controller_Router_Route_Regex在参数中匹配多个URL,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
基本上我读了大约Zend Router,我无法计划我的网址,以满足上述路线.@H_404_2@
> http://localhost/api/v1/tags.xml
> http://localhost/api/v1/tags.xml?abc=true(param:abc = true)
> http://localhost/api/v1/tags/123456.xml(param:123456.XMl)
> http://localhost/api/v1/tags/123456/pings.xml(参数:123456,pings.xML)
> http://localhost/api/v1/tags/123456/pings.xml?a=1&b=2(参数:123456,pings.xml,a = 1,b = 2)
> http://localhost/api/v1/tags/123456/pings/count.xml(params:123456,ping,count.xml)@H_404_2@
我正在计划,对于网址模式1到3,“标签”应该是控制器,对于网址模式4到6,“ping”应该是控制器.@H_404_2@
现在我不确定如何配置路由器,以便上述方案可行.
请注意,我无法更改这些网址.我可以提供100个我的声誉得分给出好的答案.@H_404_2@
$r = new Zend_Controller_Router_Route_Regex('api/v1/tags.xml',array('controller' => 'tags','action' => 'index')); $router->addRoute('route1',$r);
要区分前两个路由,请检查标记控制器中是否存在abc参数.在标记控制器中添加以下内容,索引操作.@H_404_2@
if($this->_getParam('abc') == "true") { //route 2 } else { // route 1 }
我已经解释了Route 6.对于路由3,你可以使用相同的逻辑.@H_404_2@
$r = new Zend_Controller_Router_Route_Regex('api/v1/tags/(.*)/pings/(.*)',array('controller' => 'pings','action' => 'index'),array(1 => 'param1',2=>'param2') ); $router->addRoute('route6',$r);
然后可以像ping控制器中的以下访问参数.@H_404_2@
$this->_getParam('param1') and $this->_getParam('param2')
对于5号公路:@H_404_2@
$r = new Zend_Controller_Router_Route_Regex('api/v1/tags/(.*)/pings.xml',array(1 => 'param1') ); $router->addRoute('route5',$r);
路由器不会处理参数(URL之后的部分?).默认情况下,它们将传递给您的控制器.@H_404_2@
要获取URL中传递的特定参数值,请在控制器中使用以下命令.@H_404_2@
$this->_getParam('a');
以上是脚本宝典为你收集整理的php – 使用Zend Framework中的Zend_Controller_Router_Route_Regex在参数中匹配多个URL全部内容,希望文章能够帮你解决php – 使用Zend Framework中的Zend_Controller_Router_Route_Regex在参数中匹配多个URL所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。