[英]How to display an array ,of fetched data from database, to dropdown list in CakePHP?
大家好,我遇到將數組(從數據庫獲取)分配給下拉列表時遇到的問題。 這是代碼
控制器代碼
$skill_rows = $this->Skill->find("all");
$this->set(compact("skill_rows"));
CTP代碼
$skills = $skill_rows;
echo $this->Form->select("Seeker.skills",$skills,array("empty"=>"Select"));
數據庫
id skill
1 PHP
2 CakePHP
我希望在下拉列表中僅顯示技能列,但它顯示完整的表格。
使用$this->Skill->find("list");
返回可以在下拉菜單中使用的主鍵顯示字段值的數組。 您可能需要將skill
指定為displayField
才能正常工作。
CakePHP 2
在CakePHP 2中, displayField
是模型的屬性:
class Skill extends AppModel {
public $displayField = 'skill';
}
另外,您可以在執行find()
時定義要在列表中返回的列:-
$this->Skill->find('all', [
'fields' => [
'Skill.id',
'Skill.skill'
]
]);
CakePHP 3
在CakePHP 3中,您可以在模型中定義displayField
:
class SkillsTable extends Table
{
public function initialize(array $config)
{
$this->displayField('skill');
}
}
如果要在CakePHP 3中的find()
查詢上執行此操作,則需要定義keyField
和valueField
:
$this->Skill->find('list', [
'keyField' => 'id',
'valueField' => 'skill'
]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.