web-dev-qa-db-ja.com

DropDownList yii 2.0の例

私はyii 2.0 Frameworkを使用しています。データベースからオプションを作成する方法を教えてください。これを見つけましたが、yii 1.1:

<?php echo CHtml::dropDownList('listname', $select, 
          array('M' => 'Male', 'F' => 'Female'));

それをフォームに渡したい:

<?php $form->dropDownList() ?>

データベーステーブルからドロップダウンリストを埋めるにはどうすればよいですか?

7
pvaitonis

Html::dropDownList()を含むyii\helpers\Htmlを使用します。

echo Html::dropDownList('listname', $select, ['M'=>'Male', 'F'=>'Female']);

チェック Yii Framework 2.0 API

コントローラー

public function actionSomething() {
    $sexes = ['M'=>'Male', 'F'=>'Female'];  
    $this->render('yourView', ['sexes'=>$sexes]);
}

ビュー

<?php
::
    echo Html::dropDownList('listname', $select, $sexes);
::
?>
9
Barry

ActiveFormウィジェットを使用する場合は、これを使用します。

<?php 
    $items = ArrayHelper::map(Model::find()->all(), 'id', 'name');
    $form->field($model, 'attribute')->dropDownList($items)
?>
13
olchick

はい、ActiveFormウィジェットを使用している場合、コントローラ、ビュー、フォームで何も変更する必要はありません。ドロップダウンが必要な場所にこれを追加します

    use yii\helpers\ArrayHelper;

    <?php 
        $city = \app\models\City::find()->all(); 
        $listData=ArrayHelper::map($city,'cityId','cityName'); 
    ?>    
    <?= $form->field($model, 'cityId')->dropDownList($listData,['Prompt'=>'Choose...']) ?>
3
Sadia Naseeba
<?= $form->field($model, 'name_of_field')->dropdownList(['1' => 'aaa', '2' => 'bbb'], ['Prompt' => '---Select Data---']) ?>
2
vishuB