如何将类别名称而不是其ID获取到选择列表中,我正在使用CakePHP
"类别"表只有两列(id,name)
视图部分:
echo $this->Form->input('category',array(
'type' => 'select',
'options' => $categories,
'empty' => 'select category'
));
协会:
class Job extends AppModel{
public $name = 'Job';
public $belongsTo = array('Category');
}
控制器:
$categories= $this->Job->Category->find('list');
$this->set('categories',$categories);
结果是一个具有1、2、3、4、5、6个值的选择列表
您需要按照以下方式编辑控制器代码:
$categories= $this->Job->Category->find('list',array('fields'=>array('Category.id','Category.name')));
您需要在cakephp中使用虚拟字段。
http://book.cakephp.org/2.0/en/models/virtual-fields.html
也是ctp文件中的Line main
foreach($times as $key => $value ){ $timesList[$value] = $value; } $times = $timesList
根据您的控制器型号使用。了解更多信息。请点击这个链接。在这里我面临同样的问题,我得到了解决方案。
虚拟字段在cakehp-
在cakehp3.X 中
// Common Usage:
$users = [
['id' => 1, 'name' => 'mark'],
['id' => 2, 'name' => 'jane'],
['id' => 3, 'name' => 'sally'],
['id' => 4, 'name' => 'jose'],
];
$results = Hash::extract($users, '{n}.id');
// $results equals:
// [1,2,3,4];
https://book.cakephp.org/3.0/en/core-libraries/hash.html