如何获取路由器“段”的值数组?

时间:2013-09-09 18:00:12

标签: zend-framework2

我使用带有multiupload的表单。我的addAction保存有关数据库中下载文件的信息,并获取数组lastInsrtId()值。如果上传成功,我需要重定向到editAction,用户可以在其中查看下载文件列表,用户可以使用此文件列表编辑每个下载文件的图像的标题,描述和alt属性等文件属性。如何在路径中传递值数组?这是我的代码addAction:

// upload success
$fileIds = $this->getContentService()->makeFiles($parent, $data);
return $this->redirect()->toRoute('sc-admin/file/edit', array('ids' => $fileIds));

以下是应显示要编辑的文件列表的路径的定义:

'edit' => array(
    'type' => 'segment',
    'options' => array(
        'route' => '/edit[/:ids]',
        'defaults' => array(
            'controller' => 'sc-file',
            'action' => 'edit',                
        ),                
    ),                
),

但是它会为editAction生成错误

rawurlencode() expects parameter 1 to be string, array given

我不想在传递值数组所需的参数时使用会话,因为它只是路由选择。

1 个答案:

答案 0 :(得分:1)

曾见过这个网址吗?

http://foo.bar/baz?array(1=>2,3=>4)

可能不是。您收到错误消息,如错误消息所示。这与Zend Framework有很强的关系,这是基本的PHP(很多人经常忘记核心是什么......)。

array('ids' => serialize($data))

请参阅php:serialize()php:unserialize()