Zend framework2 如何在ZF2路由中传递数组?

Zend framework2 如何在ZF2路由中传递数组?,zend-framework2,Zend Framework2,例如,我想要得到这个url字符串 /1/2/3/4 鉴于: $this->url('routeName', array( 'a' => array(1, 2, 3, 4) )); 在控制器中: print_r($this->params()->fromRoute('a')); 输出为: array( 0 => 1, 1 => 2, 2 => 3, 3 => 4 ); 是否可以创建此路线 如果它能工作的

例如,我想要得到这个url字符串

/1/2/3/4
鉴于:

$this->url('routeName', array(
    'a' => array(1, 2, 3, 4)
));
在控制器中:

print_r($this->params()->fromRoute('a'));
输出为:

array(
    0 => 1,
    1 => 2,
    2 => 3,
    3 => 4
);

是否可以创建此路线

如果它能工作的话,那就是使用类。因为我从来没有让它按我预期的方式工作,所以我建议您采用ZF2方式,在这里您可以完全控制自己的工作;)参数和配置内容应始终命名!我建议您创建以下类型的简单路线:

如果要求不同,显然路线配置会改变。您需要按如下方式设置路线:

$this->url('routename', array(
    'val1' => 1,
    'val2' => 2,
    'val3' => 3,
    'val4' => 4
));
'routename' => array(
    'type'    => 'Zend\Mvc\Router\Http\Segment',
    'options' => array(
        'route'    => 'routename[/:val1][/:val2][/:val3][/:val4]',
        'defaults' => array(
            'controller' => 'controllername',
            'action'     => 'actionname'
        ),
        'constraints' => array(
            'val1' => '[0-9]+',
            'val2' => '[0-9]+',
            'val3' => '[0-9]+',
            'val4' => '[0-9]+'
        )
    )
)

在module.config.php文件中添加url路由,如下所示:

$this->url('routename', array(
    'val1' => 1,
    'val2' => 2,
    'val3' => 3,
    'val4' => 4
));
'routename' => array(
    'type'    => 'Zend\Mvc\Router\Http\Segment',
    'options' => array(
        'route'    => 'routename[/:val1][/:val2][/:val3][/:val4]',
        'defaults' => array(
            'controller' => 'controllername',
            'action'     => 'actionname'
        ),
        'constraints' => array(
            'val1' => '[0-9]+',
            'val2' => '[0-9]+',
            'val3' => '[0-9]+',
            'val4' => '[0-9]+'
        )
    )
)
然后按照以下步骤添加数字:

$this->url('routename', array(
    'val1' => 1,
    'val2' => 2,
    'val3' => 3,
    'val4' => 4
));
您可以通过以下方式获取所有参数:

print_r($this->params());

是的,这是可能的。您需要在modul.config.phpI中进行更改,但在我使用数组生成url后,会触发许多错误