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

时间:2018-07-31 15:03:25

标签: yii2 yii-form

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

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

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

我已尝试在具有发布请求的控制器中使用。

 $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>";

但这些都不是在提交后打印出的。 它包含着性的价值。这是print_r($ post)结果 [sex] => 1,但如果在下拉列表中使用'sex []',则会显示类似[sex] => array([0] => 1)

1 个答案:

答案 0 :(得分:1)

如果要选择多个选项,请确保将其创建为数组形式为Property 性别[]

像这样

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

然后将其加载到模型

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

应该是

$model->sex(这是一个数组)。

如果您只想选择一个选项

你必须有这样的东西

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

您的答案将是$ model->性别(即1或2)