你好我正在使用ZendFramework 2.0,我想用查询参数设置路由。例如,我希望这样的东西能够起作用。
我想要匹配 ... / foo?my_param = number 的路线,但不会 匹配 ... / foo 或 ... / foo?not_allowed_param = value
'type' => 'Literal',
'options' => array(
'route' => 'foo',
'defaults' => ...// Route to some error handler
'may_terminate' => true,
'child_routes' => array(
'query' => array(
// there is some query so route to my action
'type' => 'Query',
'options' => array(
'defaults' => array(
'controller' => 'index',
'action' => 'fooAction',
),
),
),
),
),
另一方面,我希望能够使用 $ this-> url('... / foo',array('my_param'=> 3))
Ofc认为这不起作用。我希望你知道我期望的行为。
感谢您的帮助!
答案 0 :(得分:1)
您的回答建议使用GET参数。您可以检查控制器是否已通过变量。
如果你想通过路由器(如Sam所说),你可以设置一个段式路由器。这个链接解释了这一点: http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html
下面列出了一个示例:
'YourName' => array(
'type' => 'segment',
'options' => array(
'route' => '/property/search[/:action]',
'constraints' => array(
'controller'=>'[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'Module\Controller\Controller',
'action' => 'index',
),
),
),
方括号中的细分被视为可选。