簡體   English   中英

如何使用數組填充表單幫助器選擇?

[英]How to populate form helper select with array?

我有以下數組數據是從不是我的表中獲取的。

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>

我該如何實現?

通常,如果在模型定義中正確設置了displayFieldprimaryKey$this->YourModel->find('list')將返回適當的數組。

如果由於某些原因而不是,則必須手動調整選擇數組以使其看起來像這樣

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

但是一定要研究一下 find('list') ,因為在95%的情況下,它解決了這種“問題”。 請重新閱讀一下它不是您的桌子,所以我想您根本就沒有做查找。 但是,解決方案仍然存在,請在您從其他表中獲取的數組中執行for,並像我之前指出的那樣對其進行調整,將ids作為鍵,將names作為值

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM