我在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确实正确显示...
答案 0 :(得分:1)
fromQuery()
专门从查询字符串中提取变量。你想要的是:
$page = $this->params()->fromRoute('page');
请参阅:http://framework.zend.com/manual/2.3/en/modules/zend.mvc.plugins.html#params-plugin