0

我有以下数组数据是从不是我的表中获取的。

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_idsbu_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>

我如何实现这一目标?

4

1 回答 1

1

通常,如果您的和在模型定义中正确设置, a$this->YourModel->find('list')将返回适当的数组。displayFieldprimaryKey

如果由于某种原因它们不是,您必须手动调整您的选择数组看起来像这样

array(
    [id1] => name1,
    [id2] => name2,
    etc
)

但是请查看find('list'),因为在 95% 的情况下,它解决了这种“问题”。 只是重新阅读它不是你的桌子,所以我猜你根本没有找到。但是,解决方案仍然是,在您从另一个表中获取的数组中执行一个 for 并像我之前指出的那样对其进行调整,ids 作为键,名称作为值

于 2013-04-16T19:00:04.160 回答