![](/img/trans.png)
[英]How to retrieve serialized data in Form::model and populate array of Form::select with multiselect in laravel
[英]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_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>
我該如何實現?
通常,如果在模型定義中正確設置了displayField
和primaryKey
則$this->YourModel->find('list')
將返回適當的數組。
如果由於某些原因而不是,則必須手動調整選擇數組以使其看起來像這樣
array(
[id1] => name1,
[id2] => name2,
etc
)
但是一定要研究一下
find('list') ,因為在95%的情況下,它解決了這種“問題”。
請重新閱讀一下它不是您的桌子,所以我想您根本就沒有做查找。 但是,解決方案仍然存在,請在您從其他表中獲取的數組中執行for,並像我之前指出的那樣對其進行調整,將ids作為鍵,將names作為值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.