PHP 5.3+ 和 Yii 1.1.13+
您可以使用匿名函数:
echo $form->dropDownListRow($model , 'client_id',
CHtml::listData(Client::model()->findAll(), 'id', function($data){
return $data->client_type_id == 1 ? $data->company_name : $data->first_name
})
);
Yii < 1.1.13 和/或 PHP <5.3
您可以使用该CActiveRecord::afterFind()
方法来初始化变量 say$list_info
并将其用作您的字段:
class MyClass extends CActiveRecord{
public $list_info;
...
public function afterFind(){
$this->list_info=$this->client_type_id == 1 ? $this->company_name : $this->first_name
}
}
然后下拉列表变为
$form->dropDownListRow($model , 'client_id', CHtml::listData(
Client::model()->findAll(), 'id', 'list_info')
);
参考:http ://www.yiiframework.com/doc/api/1.1/CHtml#listData-detail