我的_form模型中有一个下拉列表,我想添加一个空值(我想要默认值)。我有以下内容: 在_form:
<?php echo $form->labelEx($model,'country_id'); ?>
<?php echo $form->dropDownList($model,'country_id',Country::items(),array('empty' => '--Select a country--')); ?>
<?php echo $form->error($model,'country_id'); ?>
在模范国家:
public static function items()
{
return CHtml::listData(Country::model()->findAllBySql(
'SELECT * from country'),
'id', 'name');
}
即使我的空选项位于下拉列表的第一行,列表中的第一个国家/地区也显示为默认值。
我试过了:
<?php echo $form->dropDownList($model,'country_id',
Country::items(),array('empty'=>'--Select a country--',
'options'=>
array(
'3'=>array('selected'=>'selected')
)
));
?>
通过这种方式我可以选择默认选项,但不能将其设置为空值,只是来自model:items的国家。
有什么想法吗?
答案 0 :(得分:21)
打印下拉列表时,您确定模型的country_id
属性未设置为任何内容吗?如果$model
实例是使用new Country()
运算符创建的,而不是通过从数据库填充属性,则以下内容适用于我:
<?php echo $form->dropDownList(
$model,
'country_id',
Country::items(),
array(
'empty'=>'--Select a country--')
);
?>
答案 1 :(得分:12)
阅读documentation。有'提示'参数。
试试这个:
<?php
echo $form->dropDownList($model,'country_id',Country::items(), array(
'prompt' => '--Select a country--'
));
?>
答案 2 :(得分:1)
您总是可以在items
方法
public static function items()
{
return array_merge(array(''=>'--Select a country--'), CHtml::listData(Country::model()->findAllBySql(
'SELECT * from country'),
'id', 'name'));
}
答案 3 :(得分:1)
我相信你在寻找:
echo $form->dropDownList($model,'country_id',Country::items(),array('prompt'=>''));
答案 4 :(得分:0)
如果您使用yiibooster,这可能会有所帮助
<?php echo $form->dropDownListGroup(
$model,
'kode_cuti_sub2',
array(
'empty'=>'--Select a country--',
'widgetOptions' => array(
'data' => array('Something ...', 'Pilih Jenis Cuti'=>Chtml::listData(Cuti::model()->cuti_sub2(),'kode','jenis_cuti')),
'options' => array(
'placeholder' => 'Pilih NIP Pegawai',
'width' => '100%',
),
),
'wrapperHtmlOptions' => array(
'class' => 'col-sm-5',
),
)
); ?>
就我而言,它的工作