填写国家下拉列表

时间:2016-06-16 12:13:31

标签: cakephp cakephp-3.0

我有一个包含列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?

2 个答案:

答案 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。

它的作品非常适合你......

感谢