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 に答える