1

ユーザーが複数の受信者を選択できる Zend Form を使用して、単純なメッセージ システムを構築しています。各受信者は異なるユーザー タイプである可能性があるため、ユーザー タイプと ID の両方を servicelayer に送信する必要があります。フォームは、(フォームの配列要素として) 1 人の受信者が選択された状態で開始されます。jQuery を使用して、後続の各受信者をその配列に追加する予定です。私はこれで終わりたい:

array(4) {
    ["Subject"] => string(4) "My message subject"
    ["Body"] => string(6) "My body of text"
    ["Recipients"] => array(1) {
        [0]
            ["profile"] => string(2) "476"
        }
        [1]
            ["otherusertype"] => string(1) "54"
        }
    }
}

これにより、各受信者をうまく簡単にループして、ユーザーの種類とそれぞれの ID を取得できます。

今、私は現在 Zend Form でこれを行っています:

$form->addElement(
    'hidden', 
    $type, 
    array(
        'value' => $id, 
        'belongsTo' => 'Recipients'
    )
);

しかし、これは私を残します

array(4) {
  ["Subject"] => string(4) "hfgh"
  ["Body"] => string(6) "fghfgh"
  ["Recipients"] => array(1) {
    ["profile"] => string(1) "1"
  }
}

ご覧のとおり、ユーザー タイプが "profile" の別の受信者を配列に追加すると、上書きされるだけです。

この配列内で余分な次元を取得するにはどうすればよいですか?

前もって感謝します!

4

1 に答える 1

4

belongsToを配列に設定する必要があります。

    $this->addElement('hidden',  '1', array(
        'value' => 1, 
        'belongsTo' => 'Recipients[profile]'
    ));
    $this->addElement('hidden',  '2', array(
        'value' => 2, 
        'belongsTo' => 'Recipients[profile]'
    ));
于 2012-04-23T07:35:02.983 に答える