在 yii2 控制器中获取所选下拉选项的值

get value of selected dropdown option in yii2 controller

我正在尝试从注册表单中获取所选下拉菜单的值。我需要将该值存储在数据库中。 下拉代码是。

<?= $form->field($model, 'sex')->dropDownList(['1' => 'Male', '2' => 'Female'],['prompt'=>'Select Gender...'] )?>

我在这里尝试过 属性 'sex[]'。但它没有帮助。

我已经尝试在控制器中使用 post 请求。

 $post=Yii::$app->request->post();
    $chosen = Yii::$app->request->post('sex', '');

    print_r($chosen);
    print_r($post->sex);

    echo "1:".$this->sex;
    echo "<br>";
    echo "2:".$this->sex;
    echo "<br>";
    echo "3:".$this->sex[0];
    echo "<br>";
    echo "4:".$this->sex[1];
    echo "<br>";

但这些都没有打印 post 中提交的值。 它包含性的价值。这是 print_r($post) 结果 [sex]=>1 但如果是 use'sex[]' 在下拉菜单中显示类似 [sex]=>array( [0]=>1)

如果您想 select 多个,请确保将其创建为 属性 形式的数组 性别[]

像这样

<?= $form->field($model, 'sex[]')->dropDownList(['1' => 'Male', '2' => 'Female'],['prompt'=>'Select Gender...'] )?>

然后将其加载到您的模型中

$model->load(Yii::$app->request->post()) 

会是

$model->sex(即数组)。

如果你想select只有一个选项

你必须有这样的东西

<?= $form->field($model, 'sex')->.... ?>

你的答案是 $model->sex(即 1 或 2)