Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 控制器中的Yii2下拉列表值_Php_Yii_Yii2 - Fatal编程技术网

Php 控制器中的Yii2下拉列表值

Php 控制器中的Yii2下拉列表值,php,yii,yii2,Php,Yii,Yii2,我的视图中有一个下拉列表,希望稍后从controller发送电子邮件 创建视图: echo $form->field($model, 'company')->dropDownList(['a' => 'LG', 'b' => 'Samsung'], ['prompt'=>''])->label('Company'); 行动代码: public function actionVacancy() { $model=new VacancyForm;

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

创建视图:

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,
                        ...
      ])
访问下拉列表所选值的正确方法是什么?目前我只能访问密钥,但不知道如何访问值


提前感谢

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

$model = new Model();

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

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

...

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

如果您想在控制器中获得描述,则需要
按id查找与模型相关的描述

 use yourapp\models\Company;

 $company = Company::find()
->where(['id' => $model->company])
->one();
假设$model->company包含您要查找的距离的id

  $company->name  //  

应包含所需的值

在控制器操作中,放入print\u r($\u POST);exit()然后,当您提交表单时,您将在post数组中看到值并知道如何访问它。post值已加载。问题是$model->company返回“a”,而我不知道如何获取“LG”。例如,无论如何,感谢您的回答。LG不会在表单中发送,它是一个key=>值,只发送key,如果你想从a获得LG,你必须为它建立一个关系,或者将LG设置为你的关键以及你的价值。您的关系可能类似于$model->company->lg\u table。很好的链接,非常感谢你的回答