php – 使用TbActiveForm选择列表中的动态选项

我在控制器中有以下代码,

$model=new Guessgame('search');
$model->unsetAttributes();  // clear any default values
if(isset($_GET['Guessgame']))
    $model->attributes=$_GET['Guessgame'];
    $this->render('admin',array(
        'model'=>$model,
));

在视图文件中,

<?PHP $form=$this->beginWidget('bootstrap.widgets.TbActiveForm',array(
'id'=>'project1-form',
'enableAjaxValidation'=>false,

'htmlOptions' => array('enctype' => 'multipart/form-data','class' => 'well'),
'type'                   => 'horizontal',
     'enableAjaxValidation'   => false,
    'enableClientValidation' => true,
    'clientOptions'          => array(
        'validateOnSubmit' => true,
    )
)); ?>
<p class="help-block">Fields with <span class="required">*</span> are required.</p>

<?PHP echo $form->errorSummary($model); ?>
<?PHP echo $form->dropDownListRow($model,'type',array('logo'=>'logo','apaters'=>'Apaters','text'=>'Text'),array('class'=>'span5','maxlength'=>255)); ?>

上面的示例列表项是静态的(徽标,分隔符和文本.

但我想从数据库获取动态值.请帮我.

解决方法:

你可以在模型中写下函数来从db获取

function getValues(){

    $crit = new CDbCriteria();
    $crit->select = 'name';
    $crit->order = 'name';
    $data = YourModel::model()->findAll($crit);
    $result = CHtml::listData($data,'id','name');
    return $result;

}

在视野中

<?PHP 
    echo $form->dropDownListRow($model, 'type', YourModel::model()->getValues(), array('class'=>'span5', 'maxlength'=>255)); 
?>

希望这样可以解决您的问题

相关文章

1、将Yii2.0advanced版中应用主体frontend或backend应用复制...
Yii2restfulAPI文档一、配置模块:1.Config/main.php:  2...
Yii在framework/i18n/data/%lang%.php文件中有很多翻译.这...
在Yii2中,官方的页面多语言解决方案有两个:方案1,使用Yii...
Yii2.0对数据库查询的一些简单的操作1234567891011121314151...
数据查询User::find()->all();此方法返回所有数据;User:...