1

我正在使用 cakephp 并尝试将数组从视图传递给控制器​​,我确实生成了一个名称复选框,用户应该选择一些名称并提交他的请求。

echo $this->Form->create('Task');
echo ($this->Form->input('sentTo', array('type' => 'select', 'multiple' => 'checkbox',        'options' => $options)));
echo $this->Form->end('submit');

问题是 sentTo 复选框将返回在 $this->request->data 中检查的索引我不想这样做,我想返回我可以在视图中获得的用户 ID。所以我想用其他数字替换这些索引,我尝试手动覆盖 $this->request->data 但更改仅在视图中可见,而在控制器中不可见。

如果您知道如何在将请求数据发送到控制器之前更改请求数据,或者将数组从视图传递到控制器,请尝试帮助我(我不想使用会话或缓存)

问候

4

1 回答 1

0

如果我正确理解了您的问题,并且根据上面的评论,这就是您的问题:

$j = 0;
foreach ($users as $user) { 
    $options[$j] = $user['u1']['username'];
    $j++;
}

如果您将其用于复选框,则将其更改为:

foreach ($users as $user) { 
    $id = $user['u1']['id'];
    $options[$id] = $user['u1']['username'];
}

虽然我不明白'u1'是什么。

简而言之:将options数组的键设置为记录的 id。

于 2012-05-12T20:43:35.320 回答