我从以下的表中获取以下数组数据。
Array
(
[0] => Array
(
[sys_sbu] => Array
(
[sbu_id] => EO
[sbu_name] => Executive Officer
)
)
[1] => Array
(
[sys_sbu] => Array
(
[sbu_id] => FIN
[sbu_name] => Finance
)
)
[2] => Array
(
[sys_sbu] => Array
(
[sbu_id] => G01
[sbu_name] => TEST GROUP
)
)
[3] => Array
(
[sys_sbu] => Array
(
[sbu_id] => MAF
[sbu_name] => Medical Affairs
)
)
[4] => Array
(
[sys_sbu] => Array
(
[sbu_id] => PCS
[sbu_name] => Patient Care Services
)
)
[5] => Array
(
[sys_sbu] => Array
(
[sbu_id] => SSS
[sbu_name] => Strategic Support Services
)
)
)
基本上,表sys_sbu
有2列。 sbu_id
和sbu_name
。在我的视图中使用以下代码似乎不会产生预期的结果。
echo $this->Form->input('Groups', array(
'type'=>'select',
'options' => $groups)
);
我想要发生的是每个select
选项的值将是sbu_id
,而显示给选区的值是sbu_name
。像这样:
<select>
<option value="EO">Executive Officer</option>
<option value="FIN">Finance</option>
<option value="etc">etc</option>
</select>
我如何实现这一目标?
答案 0 :(得分:1)
通常情况下,如果在模型定义中正确设置了$this->YourModel->find('list')
和displayField
,primaryKey
将返回相应的数组。
如果由于某种原因他们不是,你必须手动调整你的选择数组看起来像这样
array(
[id1] => name1,
[id2] => name2,
etc
)
但请注意find('list'),因为在95%的情况下,它解决了这种“问题”。
只是重新阅读它不是你的桌子,所以我猜你根本就没找到它。但是,解决方案仍然是在你从另一个表中获取的数组中进行调整,并像我之前指出的那样进行调整,将id作为键,名称作为值