请有人告诉我如何实施zf2路线以获得这样的路线 器/过滤器/ VALUE1 / VALUE2 并收到这样的数组:
filter = [
value1,
value2,
]
答案 0 :(得分:0)
如果您需要此URL /filter/value1/value2
,则可以使用通配符约束定义段路由:
'filter' => [
'type' => \Zend\Mvc\Router\Http\Segment::class,
'options' => [
'route' => '/filter/:filter',
'defaults' => [
'controller' => 'Application\Controller\Index',
'action' => 'index',
],
'constraints' => [
'filter' => '(.)+',
],
],
],
然后在控制器中,您可以将过滤器变量作为数组访问,例如:
$filter = $this->params('filter', []);
$filter = explode('/', trim($filter, '/'));
但是如果您的主要要求是过滤变量作为数组而不是URL,则只需使用数组作为查询参数:
// in controller or template:
$this->url()->fromRoute('filter', [], [
'query' => [
'filter' => [
'value1',
'value2',
],
],
]);
这会生成类似?filter[]=value1&filter[]=value2
的网址,但您可以像数组一样直接访问它:
// in controller:
$filter = $this->params()->fromQuery('filter');