0

我使用带有多重上传的表单。我的 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

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

4

1 回答 1

1

见过这个网址吗?

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

可能不是。您收到一条错误消息,请按照错误消息的说明进行操作。这与 Zend Framework无关,这是基本的 PHP(太多人经常忘记核心是什么……)。

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

php:serialize()php:unserialize()

于 2013-09-09T18:31:27.183 回答