最新消息: 新版网站上线了!!!

YII中CHtml::listData方法第一个参数(models)的使用

public static array listData(array $models, string $valueField, string $textField, string $groupField='')

$models array 模型对象的列表。这个参数也可以是一个关联的数组(例如CDbCommand::queryAll的结果)。

问题描述:

<?php echo $form->textField($model, 'staff_name',array('class'=>'input','style'=>'width:150px'));
echo CHtml::ajaxButton('查询',
$this->createUrl('cost/searchname'),
array(
'type'=>'POST',
'update'=>'#Cost_staff_id',
'data'=>array('staff_name'=>"js:$('#Cost_staff_name').val()",'YII_CSRF_TOKEN'=>Yii::app()->request->csrfToken),
));
 
       echo CHtml::activeDropDownList($model, 'staff_id',
        Staff::getRealname($model->staff_id),
        array(
'empty'=>'请选择',
        )
); ?>
Staff模型中的getRealname方法:
public static function getRealname($id)
{
$result=self::model()->findByPk($id);
        var_dump($result);exit;
return CHtml::listData($result, 'id', 'realname');
}
返回的结果为

 

array(1) {
  [""]=>
  NULL
}

采用以下方案,均可得出正确结果:

public static function getRealname($id)
{
$a=array(
'id'=>2,
'realname'=>'真实姓名',
);
$b=array(
'a'=>$a,
);
var_dump(CHtml::listData($b, 'id', 'realname'));exit;
}

转载请注明:谷谷点程序 » YII中CHtml::listData方法第一个参数(models)的使用