2013-04-17 31 views
8

Tôi có danh sách thả xuống trong mô hình _form và tôi muốn thêm giá trị trống (mà tôi muốn làm mặc định). Tôi có những điều sau đây: Trong _form:Danh sách thả xuống YII Giá trị trống dưới dạng mặc định

<?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'); ?> 

Trong Mẫu Quốc gia:

public static function items() 
{ 
    return CHtml::listData(Country::model()->findAllBySql(
         'SELECT * from country'), 
         'id', 'name'); 
} 

Thậm chí lựa chọn sản phẩm nào của tôi là ở hàng đầu tiên trong DropDownList, nước 1 trong danh sách cho thấy như mặc định.

tôi đã cố gắng:

<?php echo $form->dropDownList($model,'country_id', 
    Country::items(),array('empty'=>'--Select a country--', 
          'options'=> 
          array(
           '3'=>array('selected'=>'selected') 
           ) 
    )); 
?> 

Bằng cách này tôi có thể chọn tùy chọn mặc định, nhưng không thể đặt nó vào giá trị rỗng, chỉ cần nước mà xuất phát từ mô hình: các mặt hàng.

Bất kỳ ý tưởng nào?

Trả lời

19

Bạn có chắc chắn rằng thuộc tính country_id của mô hình của bạn không được đặt thành bất kỳ thứ gì khi bạn in danh sách thả xuống không? Các công trình sau đây cho tôi nếu $model dụ được tạo ra sử dụng new Country() điều hành nhưng không phải bởi Populating tính từ cơ sở dữ liệu:

<?php echo $form->dropDownList(
    $model, 
    'country_id', 
    Country::items(), 
    array(
     'empty'=>'--Select a country--') 
    ); 
?> 
+0

country_id không thiết lập bất cứ điều gì. Mô hình $ này là một mô hình khác có country_id dưới dạng FK. 'country' => mảng (tự :: BELONGS_TO, 'Quốc gia', 'country_id') và trong mô hình quốc gia: 'team' => array (self :: HAS_MANY, 'Team', 'country_id') ... I có cùng mã này trong một ứng dụng khác, và nó hoạt động .. chỉ trong trường hợp này, cùng một mã .. không hoạt động ... – coppettim

+1

Xin lỗi, lỗi BIG của tôi, tôi đặt trong cơ sở dữ liệu rằng country_id trong tbl_team có giá trị mặc định = 1. .. – coppettim

1

Bạn luôn có thể làm điều gì đó như array_merge trong phương pháp items bạn

public static function items() 
{ 
return array_merge(array(''=>'--Select a country--'), CHtml::listData(Country::model()->findAllBySql(
          'SELECT * from country'), 
          'id', 'name')); 
} 
1

Tôi tin rằng bạn đang tìm kiếm:

echo $form->dropDownList($model,'country_id',Country::items(),array('prompt'=>'')); 
.210
0

nếu bạn sử dụng yiibooster có lẽ đây sẽ giúp

<?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', 
       ), 
      ) 
     ); ?> 

trong trường hợp của tôi nó đã làm việc

Các vấn đề liên quan