2013-06-12 107 views
18

如何實現下面的Yii代碼Yii2:Yii2下拉空的選項

<?php 
    echo $form->dropDownList($model, 
          'project', 
          $model->getProjectOptions(), 
          array('empty' => 'Empty string') 
    ); 
?> 

回答

26

爲什麼不

dropDownList($model, 'project', $model->getProjectOptions(), array('prompt'=>'Empty string'); ?> 
  • 提示:字符串,提示文本顯示爲第一個選項;

這裏是老了CHtml https://github.com/yiisoft/yii2/blob/master/framework/yii/helpers/base/Html.php

能找到那裏,如果你需要更多的東西。

+1

http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#dropDownList()-detail文件的Yii2 DROPDOWNLIST –

+1

您現在可以設置爲空(提示)選項警予的2.0.11按[在文檔中](http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#activeDropDownList()-detail) – friek108

4

試試這個: 如果你願意,你可以移除模板。

<?php 
    $form = ActiveForm::begin([ 
    'id' => 'test-form', 
    'options' => ['class' => 'form-horizontal'], 
    'enableClientValidation'=> true, 
    'enableAjaxValidation'=> false, 
    'validateOnSubmit' => true, 
    'validateOnChange' => true, 
    'validateOnType' => true, 
    'action' => Yii::$app->homeUrl . 'your/url/path' 
    ]); 
?> 

    echo $form->field($model, 
       'your_field_name', 
       ['template' => '<div class="col-md-3"> 
            {label} 
           </div> 
           <div class="col-md-9"> 
            {input}{error}{hint} 
           </div>' 
       ]) 
       ->dropdownList($option_array, ['prompt' => '--Select--']); 

<?php ActiveForm::end(); ?> 
2

您看起來這樣?

<?=$form->field($model, 'project') 
     ->dropDownList(ArrayHelper::map(['empty'=>'Empty string'], 'id', 'value')) 
     ->label(false); 
?> 
1

當你做出projectOptions陣列,只要第一個索引有一個空鍵,這樣的:

[ 
    null => 'Empty option', 
    ... // Your options 
] 

而且在你看來你只需要添加

$form->field($model, 'project')->dropDownList($model->projectOptions); 

當你的函數名以'get'開頭,後跟一個大寫字母,yii明白作爲一個屬性,所以

public function getSomeOptions(){ .. 

是一樣的someOptions,是表關係

7

使用下面的代碼來獲得在yii2朋友下拉列表的原理相同。

<?php 
    //use app\models\Country; 
    $countries=Country::find()->all(); 

    //use yii\helpers\ArrayHelper; 
    $listData=ArrayHelper::map($countries,'code','name'); 

    echo $form->field($model, 'name')->dropDownList(
            $listData, 
            ['prompt'=>'Select...']); 
    ?>