簡體   English   中英

如何在CakePHP中顯示從數據庫中獲取的數據的數組到下拉列表?

[英]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()查詢上執行此操作,則需要定義keyFieldvalueField

$this->Skill->find('list', [
    'keyField' => 'id',
    'valueField' => 'skill'
]);

暫無
暫無

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

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