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

このURLを見たことがありますか?

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 に答える