Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在yii中使用listdata压缩2列_Php_Mysql_List_Yii_Concat - Fatal编程技术网

Php 在yii中使用listdata压缩2列

Php 在yii中使用listdata压缩2列,php,mysql,list,yii,concat,Php,Mysql,List,Yii,Concat,我想做一个下拉列表,可以显示2列的concat 这是我的密码: $list = CHtml::listData(Coa::model()->findAllBySql("SELECT id, concat(name,' - ',saldo) as info FROM coa where id_type = 1"),'id','info'); echo CHtml::dropDownList('id_coa','id', $list, array('prompt'=>'choos

我想做一个下拉列表,可以显示2列的concat

这是我的密码:

  $list = CHtml::listData(Coa::model()->findAllBySql("SELECT id, concat(name,' - ',saldo) as info FROM coa where id_type = 1"),'id','info');
  echo CHtml::dropDownList('id_coa','id', $list, array('prompt'=>'choose account','class'=>'form-control'));
该表由id、id类型、名称和saldo组成

我想把name和saldo联系起来, 然后把它放在下拉选项中

我尝试了findAllBySql中的代码,它工作得很好 当我把它放在yii上时,它不起作用。

改变

echo CHtml::dropDownList('id_coa','id', $list, array('prompt'=>'choose account','class'=>'form-control'));


因为在CHtml::dropdownlist中,第二个参数是默认的选定值。无法指定列名。

在model类中创建一个getter函数,该函数将在单个字符串中返回两个字段的值,如下所示:

class Coa extends CActiveRecord {
    // ...
    public function getNamesaldo() {
        return sprintf('%s %s', $this->name, $this->saldo);
    }
    // ...
}
然后在不使用任何concat函数的情况下正常获取记录,但这两个字段都应位于select查询中。因此,模型函数可以在一个字符串中返回这两个值:

$model_data = Coa::model()->findAllBySql(
    "SELECT id, name, saldo FROM coa where id_type = 1");
现在,在这里调用
listData
并指定模型属性
id
getter
名称,如下所示:

$list = CHtml::listData($model_data, 'id', 'namesaldo');
echo CHtml::dropDownList('id_coa', 'id', $list, array(
    'prompt' => 'choose account', 'class' => 'form-control'));
就这些:)

$list = CHtml::listData($model_data, 'id', 'namesaldo');
echo CHtml::dropDownList('id_coa', 'id', $list, array(
    'prompt' => 'choose account', 'class' => 'form-control'));