我有一个包含列ID,国家/地区的数据库表。
内部控制器我从模型中获取国家:
$countries = $countries->find('list',array('fields',array('id','country')));
$this->set('countries',$countries);
在ctp文件中,我试图通过在选项值中设置id并在文本中设置国家/地区来获取下拉列表。
<?= $this->Form->input('Country of residence',array('type'=>'select','options'=>$countries)); ?>
下拉列表的填充值为id,文本再次为id。我怎样才能将'country'作为文本而不是id?
答案 0 :(得分:2)
对于'list',您无法提供字段数组,因为它仅用于键/值对。您应该指定 keyField 和 valueField 。
$countries = $countries->find('list');
或者,您可以在CountriesTable文件中设置 displayField()选项,以便为您设置默认的 valueField 。默认 keyField 将是您表的主键。如果您为countries表bake建模,则会自动设置这些选项。然后,你很高兴与
一起去UITableView
并且,不要在表单的字段名称中使用空格。完成此doc一次
答案 1 :(得分:0)
在您的控制器中更改此
$countries = $this->Country->find('list', array('fields' => array('id','country')));
$this->set('countries', $countries);
到
$countries = $countries->find('list',array('fields',array('id','country')));
$this->set('countries',$countries);
这里我将$ country更改为Country(国家的型号名称)
并更改您的视图ctp文件
<?php echo $this->Form->input('country_of_residence',array("options"=>$countries,'type'=>'select'));?>
到
<?= $this->Form->input('Country of residence',array('type'=>'select','options'=>$countries)); ?>
在这里,我将更改字段的居住国家/地区country_of_residence。
它的作品非常适合你......
感谢