我是PHP和ZF2的新手。 我有一个paginator,我需要保持排序,搜索和过滤查询字符串,如下所示:
[Compiling]: /tmp/php-build/source/5.5.21
我读到了路由,但我不明白如何在我的情况下使用。 在module.config.php中我有:
http://localhost:90/admin/analyses/list?page=1&filter_analyses_categories=1&orderBy=analyses_name&orderDirection=DESC
paginator部分视图如下所示:
return array(
'router' => array(
'routes' => array(
'home' => array(
'type' => 'Zend\Mvc\Router\Http\Literal',
'options' => array(
'route' => '/',
'defaults' => array(
'controller' => 'Admin\Controller',
'action' => 'index',
),
),
), //end home
'admin' => array(
'type' => 'Literal',
'options' => array(
'route' => '/admin',
'defaults' => array(
'__NAMESPACE__' => 'Admin\Controller',
'controller' => 'Index',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'default' => array(
'type' => 'Segment',
'options' => array(
'route' => '/[:controller[/:action][/page/:page]]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
),
),
),
),
), //end admin
'paginator' => array(
'type' => 'segment',
'options' => array(
'route' => '',
'defaults' => array(
'page' => 1,
),
'may_terminate' => true,
'child_routes' => array(
'query' => array(
'type' => 'Query',
),
),
),
),//end paginator
),//end routes
),
);
为每个页面创建的链接如下:
http://localhost:90/admin/analyses/list?page=3
没有其他查询字符串parmaeters。 如何为每个页面实现正确的URL以保持其他查询字符串参数?
答案 0 :(得分:0)
不要将您的页面参数作为查询字符串传递。改为使用您定义的路由参数:
$this->url('admin/default', ['page' => $page], true);
第三个参数保留已匹配的路线参数