2013-06-12 14 views
18

Come implementare il seguente codice Yii per Yii2:Yii2 discesa opzione vuota

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

risposta

26

Perché non

dropDownList($model, 'project', $model->getProjectOptions(), array('prompt'=>'Empty string'); ?> 
  • messaggio: stringa, un testo del prompt da visualizzare come prima opzione;

Qui è vecchio cHTML https://github.com/yiisoft/yii2/blob/master/framework/yii/helpers/base/Html.php

può trovare lì se avete bisogno di qualcosa di più.

+1

http://www.yiiframework.com/doc-2.0/yii-widgets-activefield.html#dropDownList()-detail Doc per Yii2 DropDownList –

+1

È ora possibile impostare le opzioni di vuoti (prompt), come di Yii 2.0.11 come da [qui nella documentazione] (http://www.yiiframework.com/doc-2.0/yii-helpers-basehtml.html#activeDropDownList() -detail) – friek108

4

Prova questo: Puoi rimuovere il templet se lo desideri.

<?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

Stai cercando qualcosa del genere?

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

Quando si effettua la matrice projectOptions, basta fare il primo indice aveva una chiave nullo, così:

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

E secondo lei basta aggiungere

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

Quando il il nome della funzione inizia con 'get' seguito da una lettera maiuscola, il yii lo capisce come un attributo, quindi

public function getSomeOptions(){ .. 

è la stessa someOptions, è lo stesso principio delle relazioni tra tabelle

7

utilizzare il seguente codice per ottenere il dropdownlist in amico 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...']); 
    ?>