如何使用枚举添加在下拉列表中选择的默认值?

时间:2016-08-28 18:30:57

标签: php drop-down-menu yii2 yii2-advanced-app

我是yii2的新手并试图绕过。我有一个下拉列表,其数据库中的值是枚举。因此,当创建crud时,dropdownlist具有枚举值。

但我想在下拉列表中选择一个默认值作为默认值。 我的表单代码如下:

<?= $form->field($model, 'priotiy_level')->dropDownList([ 'low' => 'Low', 'medium' => 'Medium', 'high' => 'High', ], ['prompt' => 'Select Priority Level']) ?>

我希望将medium作为选定值,而不是提示符。有人可以帮我这个吗?

谢谢。

4 个答案:

答案 0 :(得分:2)

在控制器中初始化$ model实例后,设置属性,然后将$ model传递给view。

$model->priority_level = 'medium';

答案 1 :(得分:1)

正如@Bizley所说,您需要在Controller中设置属性的值。在Yii2中,您可以在一行中完成此操作:

public function actionSomething {
    $model = new MyClass(['priotiy_level' => 'medium']);

    // code

    return $this->render('something', [
        'model' => $model
    ]);
}

答案 2 :(得分:0)

提供给 dropdownList

实施例。

<?= $form->field($model, 'priotiy_level')->dropDownList([ 'low' => 'Low', 'medium' => 'Medium', 'high' => 'High', ], ['class' => 'priority_list','prompt' => 'Select Priority Level']) ?>

使用 Java脚本 Jquery

提供默认值

实施例

<script>
$(".priority_list").val('medium'); // assing value using jquery
</script>

您也可以使用ID:

实施例。

 <script>
    var temp=document.getElementById('project-industry_id');
    temp.value='medium';
    </script>

答案 3 :(得分:0)

除了之前的答案,您还可以使用default验证码:

class SomeActiveRecord extends ActiveRecord {

    // ...
    function rules(){

        return [
            ['priotiy_level', 'default', 'value' => 'medium']

            // set "username" and "email" as null if they are empty
            [['username', 'email'], 'default'],

            // set "level" to be 1 if it is empty
            ['level', 'default', 'value' => 1],
        ];

    }

}

更多详情请见:Handling Empty Inputs

此代码设置所有操作/表单的默认值。如果您在不同表单上需要不同的默认值,也可以使用scenarios of validation