_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から来た国だけです。
何か案が?
ドロップダウンリストを印刷するときに、モデルの_country_id
_プロパティが何にも設定されていないことを確認しますか? _$model
_インスタンスがnew Country()
演算子を使用して作成されているが、データベースからプロパティを入力することによって作成されていない場合、次のように機能します。
_<?php echo $form->dropDownList(
$model,
'country_id',
Country::items(),
array(
'empty'=>'--Select a country--')
);
?>
_
読む ドキュメント 。 'Prompt'パラメータがあります。
これを試して:
<?php
echo $form->dropDownList($model,'country_id',Country::items(), array(
'Prompt' => '--Select a country--'
));
?>
items
メソッドでarray_mergeのようなことをいつでも行うことができます
public static function items()
{
return array_merge(array(''=>'--Select a country--'), CHtml::listData(Country::model()->findAllBySql(
'SELECT * from country'),
'id', 'name'));
}
私はあなたが探していると信じています:
echo $form->dropDownList($model,'country_id',Country::items(),array('Prompt'=>''));
あなたが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',
),
)
); ?>
私の場合はうまくいきました