web-dev-qa-db-ja.com

Yii2ドロップダウンの空のオプション

次のYiiコードをYii2に実装する方法:

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

何故なの

dropDownList($model, 'project', $model->getProjectOptions(), array('Prompt'=>'Empty string'); ?>
  • プロンプト:文字列、最初のオプションとして表示されるプロンプトテキスト。

ここに古いCHtmlがあります https://github.com/yiisoft/yii2/blob/master/framework/yii/helpers/base/Html.php

さらに何かが必要な場合はそこに見つけることができます。

27
ineersa

次のコードを使用して、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...']);
    ?>
9
sarin surendran

これを試してください:必要に応じて、テンプレートを削除できます。

<?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(); ?>
5
Kshitiz

あなたはこのようなものを探していますか?

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

ProjectOptions配列を作成するときは、次のように、最初のインデックスにnullキーが含まれるようにします。

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

そしてあなたの見解ではあなたは追加するだけです

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

関数名が「get」で始まり、その後に大文字が続く場合、yiiはそれを属性として理解するため、

public function getSomeOptions(){ ..

同じsomeOptionsであり、テーブルの関係の同じ原理です

1
Kevin Dantas