Zend 2路由不传递参数

时间:2014-08-27 15:32:39

标签: php zend-framework

我在Zend Framework 2中的module.config.php文件中使用路由设置,它指向正确的控制器和操作,但未能通过其他页面参数,这里是配置代码:

'admin-management' => array(
            'type'    => 'Segment',
            'options' => array(
                'route'    => '/admin/accounts/[:action]/[page/:page]',
                'constraints' => array(
                    'page' => '[0-9]*',
                ),
                'defaults' => array(
                    '__NAMESPACE__' => 'UserManagement\Controller',
                    'controller'    => 'Management',
                    'action'        => '[a-zA-Z][a-zA-Z0-9_-]*',
                ),
            ),
        ),

使用控制器用户操作中的以下内容检查通过I'来的参数:

    $page = $this->params()->fromQuery();
    echo __FILE__; echo '<pre>'; print_r($page); echo '</pre>'; exit;

数组为空请求以下网址: http://myapp.dev/admin/accounts/users/page/123

顺便提一下,如果我将?page = 123添加到最后,那么param确实正确显示...

1 个答案:

答案 0 :(得分:1)

fromQuery()专门从查询字符串中提取变量。你想要的是:

$page = $this->params()->fromRoute('page');

请参阅:http://framework.zend.com/manual/2.3/en/modules/zend.mvc.plugins.html#params-plugin