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']; ?>
</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'
。