Zend Framework:我可以为url参数设置深度吗?

时间:2011-02-10 00:26:09

标签: php zend-framework zend-controller

我想只获得一个参数。 对于example site.ru/controller/action/param1/value/

但如果我请求关注url: site.ru/controller/action/param1/value/param2/value2/param3/value4/ 默认情况下我没有任何错误。

是否可以设置url参数的深度?或者我通过url解析手动完成它?

3 个答案:

答案 0 :(得分:1)

默认路线允许:module/:controller/:action(或仅:controller/:action)部分之后的任意数量的参数。

如果您想限制此项,请创建自己的路线。

请参阅http://framework.zend.com/manual/en/zend.controller.router.html

答案 1 :(得分:0)

默认情况下,param的数量没有限制=> URL中使用的值对。

但是,如果要限制URL参数,则可以创建自己的自定义路径

答案 2 :(得分:0)

考虑以下代码:

$route = new Zend_Controller_Router_Route(
            '/:controller/:action/:id',
            array('controller'=>'index','action'=>'index','id'=>''), //default values
            array('controller'=>'[a-zA-Z-]','action'=>'[a-zA-Z-]+','id'=>'([0-9]+)') //patterns to match values
);

仅当请求包含控制器名称,操作名称和ID编号时,才会触发此路由。 如果传递任何其他参数,则不会触发路由。