在cakephp中更改$this->request->data

在cakephp中更改$this->request->data,cakephp,Cakephp,我正在使用cakephp并试图将数组从视图传递到控制器,我会生成一个名称复选框,用户应该选择一些名称并提交请求 echo $this->Form->create('Task'); echo ($this->Form->input('sentTo', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options))); echo $this->Form

我正在使用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,但更改只在视图中可见,而在控制器中不可见

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


关于

如果我正确理解了您的问题,从上面的评论来看,这就是您的问题:

$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”是什么


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

请显示$option数组中的内容?可能您必须通过传递用户ID$j=0来编辑此数组;foreach$users作为$user{$options[$j]=$user['u1']['username'];$j++;选项数组包含我在复选框之外显示的用户名}以及此$user来自何处?它是从控制器$users=$this->Task->getAvailableUsers$taskID,$accID设置的$此->设置'users',$users$用户包含所有用户信息,包括用户名和用户ID。model方法在u1中返回结果,必须重命名表,因为这是一个嵌套查询,工作起来很有魅力谢谢: