1

こんにちはすべて私はビューにドロップダウンボックスを持っています。テンプレートのリストを返すfindステートメントがあります。findをデバッグすると、template.idとtemplate.nameの正しいリストが出力されますが、フォームを送信すると、たとえばリストにある番号にまたがって表示されます。リストで5番目のテンプレートを選択すると、実際のテンプレートID番号ではなくtemplate_id=5が保存されます。

//Retrieve Account Id of current User       
$accountid=$this->Auth->user('account_id');

//conditions for template arrays
$conditions=
array('AND' => array(
    array('Template.account_id' => $accountid),
    array('Template.active' => 1)
));

//An array of all Templates belonging to the current User's Account
$templates=$this->Template->find('list', array(
    'conditions' => $conditions));

$ templatesをデバッグすると、この出力が得られます

array(
    (int) 1 => 'Consulting- Bus',
    (int) 2 => 'Consulting- Pers',
    (int) 7 => 'ClientEdge',
    (int) 8 => '11111',
    (int) 9 => 'testSUn',
    (int) 10 => 'Test Bruce Review',
    (int) 11 => 'Test Bruce 3 = Final'

たとえば、[Test Bruce Review]を選択し、[送信]をクリックして、出力される値をデバッグすると、[6]が出力されます。これは、デバッグ時に10を出力する場合のドロップダウンボックスの6番目の項目です。

これは、このドロップダウンボックスに関連するフォームのスニペットです

<tr><td><?php echo "Template: "?></td>
<td><?php echo $this->Form->input('template_id', array('label'=>false,'type'=>'select','options'=>$templates));?></td></tr>

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

配列のマージで問題が発生し、template.id が失われました。

于 2012-09-23T12:23:01.493 に答える