Yii2控制器中的下拉列表值

时间:2015-10-15 18:06:41

标签: php yii yii2

我的视图中有一个下拉列表,并希望稍后从控制器发送电子邮件

创建视图:

echo $form->field($model, 'company')->dropDownList(['a' => 'LG', 'b' => 'Samsung'], ['prompt'=>''])->label('Company');

行动代码:

public function actionVacancy()
{
    $model=new VacancyForm;

    if($model->load(Yii::$app->request->post()) &&$model->validate())
    {

      Yii::$app->mailer->compose('vacancy',[
                        ...
                        'company'=> $model->company,
                        ...
      ])

访问下拉列表选择值的正确方法是什么?目前我只能访问密钥,但不了解如何访问值

提前致谢

2 个答案:

答案 0 :(得分:3)

在控制器中,您需要先将POST值加载到模型中,然后才能访问它们。

$model = new Model();

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

//send email
$company = $model->company

...

答案 1 :(得分:1)

在控制器中,您可以获得POST的结果。在这种情况下,您将获得与您的下拉列表相关的ID的值,因为这是通过post发送的值。

如果你想获得控制器中的描述,需要find通过id与模型相关的描述。

 use yourapp\models\Company;

 $company = Company::find()
->where(['id' => $model->company])
->one();

假设$ model-> company包含您要查找的istance的ID

  $company->name  //  

应包含所需的值。