我正在使用 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>请求>数据中签入的索引 我不想这样做,我想返回我可以在视图中获得的用户的 ID。 所以我想用其他数字替换这些索引,我试图手动覆盖$this->请求->数据,但更改仅在视图中可见,而不是在控制器中可见。
如果您知道如何在将请求数据发送到控制器之前更改请求数据,或者将数组从视图传递到控制器,请尝试帮助我(我不想使用会话或缓存)
问候
如果我正确理解了您的问题,并且从上面的评论中可以看出,这就是您的问题:
$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。