1

我正在使用 Zend Form 构建一个简单的消息系统,用户可以在其中选择多个收件人。每个收件人可能是不同的用户类型,因此我需要同时拥有用户类型和 ID 才能发送到服务层。该表单将从选择一个收件人开始(作为表单中的一个数组元素),我计划使用 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 回答