Cakephp 将add.cpt下拉菜单中的数据匹配到view.ctp

Cakephp 将add.cpt下拉菜单中的数据匹配到view.ctp,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,标题似乎有点奇怪,因为我正试图用外行的术语来解释我的困境 我想达到的是我所能收集到的,相当简单,但是。。我就是不能把我的手指放在上面 我有一个下拉选择菜单,用户可以选择居住在助手中的国家/地区-示例如下: class CountryListHelper extends FormHelper { var $helpers = array('Form'); function select($fieldname) { $list = $this->Form->inp

标题似乎有点奇怪,因为我正试图用外行的术语来解释我的困境

我想达到的是我所能收集到的,相当简单,但是。。我就是不能把我的手指放在上面

我有一个下拉选择菜单,用户可以选择居住在助手中的国家/地区-示例如下:

class CountryListHelper extends FormHelper { 

    var $helpers = array('Form'); 

  function select($fieldname) {
  $list = $this->Form->input($fieldname , array(
        'type' => 'select', 'label' => 'Country of Residence', 'options' => array(
        '' =>   'Please select a country',
        'AF' => 'Afganistan',
        'AL' => 'Albania',
        'DZ' => 'Algeria',
        .................
        ), 
        'error' => 'Please select a country'));
         return $this->output($list);
  }
}
在add.ctp中:

<?php   echo $this->CountryList->select('country');?>

非常简单的东西-在save上,它将首字母缩略词写入country字段

我的问题是。。将数据拉到view.ctp时,我如何显示与数据库中保存的首字母缩略词相对应的完整国家名称,而不必将整个列表写在view.ctp中,并将首字母缩略词与国家名称匹配

<dt<?php if ($i % 2 == 0) echo $class;?>><?php __('Country of Residence'); ?></dt>
        <dd<?php if ($i++ % 2 == 0) echo $class;?>>
            <?php echo $user['User']['country']; ?>
            &nbsp;
        </dd>


非常感谢您的任何帮助

向助手添加一个新函数,返回国家的全名

class CountryListHelper extends FormHelper { 

  var $helpers = array('Form');
  var $countryList = array(
        'AF' => 'Afganistan',
        'AL' => 'Albania',
        'DZ' => 'Algeria',
        .................
    );

  function select($fieldname) {
      $list = $this->Form->input($fieldname , array(
        'type' => 'select', 'label' => 'Country of Residence', 
        'options' => $this->countryList,
        'empty' => 'Please select a country',
        'error' => 'Please select a country'));
         return $this->output($list);
  }

  function fullName( $abbr ) {
      return $this->countryList[ $abbr ];
      // + error checking
  }
}

向助手添加一个新函数,返回国家的全名

class CountryListHelper extends FormHelper { 

  var $helpers = array('Form');
  var $countryList = array(
        'AF' => 'Afganistan',
        'AL' => 'Albania',
        'DZ' => 'Algeria',
        .................
    );

  function select($fieldname) {
      $list = $this->Form->input($fieldname , array(
        'type' => 'select', 'label' => 'Country of Residence', 
        'options' => $this->countryList,
        'empty' => 'Please select a country',
        'error' => 'Please select a country'));
         return $this->output($list);
  }

  function fullName( $abbr ) {
      return $this->countryList[ $abbr ];
      // + error checking
  }
}

你能详细介绍一下这个新函数的全名吗?我不太明白如何进行数据比较。它所做的只是从数组中选择国家名称。就像你做
$x=array(1=>'foo',2=>'bar')$y=$x[1]但使用命名键。所以如果你用
$this->CountryList->fullName('AF')调用它
它返回
'Afganistan'
。您能否详细介绍一下这个新函数的全名?我不太明白如何进行数据比较。它所做的只是从数组中选择国家名称。就像你做
$x=array(1=>'foo',2=>'bar')$y=$x[1]但使用命名键。所以如果你用
$this->CountryList->fullName('AF')调用它返回
'Afganistan'