2012-05-12 6 views
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-にチェックインしている>要求 - >私は私がで取得することができ、ユーザーのIDを返すようにしたい、それを行うにしたくないデータ景色。だから私はこれらのインデックスを他の数字に置き換えたい、私は手動で$ this-> request-> dataを上書きしようとしましたが、変更はコントローラではなくビューでのみ表示されます。

リクエストデータをコントローラに送信する前に変更する方法や、ビューからコントローラにアレイを渡す方法がわかっている場合(私はセッションやキャッシュを使用したくない)

よろしく

+0

$オプション配列の内容を表示してください。おそらく、ユーザーのIDを渡すことによってこの配列を編集する必要があります –

+0

$ j = 0; foreach($ usersは$ user){ $ options [$ j] = $ user ['u1'] ['username']; $ j ++; options配列には、チェックボックス } – user1339562

+0

のほかに表示されているユーザー名が含まれています。この$ユーザーはどこから来たのですか? –

答えて

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に設定します。

+0

モデルメソッドはu1で結果を返します。ネストされたクエリだったので、テーブルの名前を変更する必要がありました。 – user1339562

関連する問題