我的视图中有一个下拉列表,并希望稍后从控制器发送电子邮件
创建视图:
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,
...
])
访问下拉列表选择值的正确方法是什么?目前我只能访问密钥,但不了解如何访问值
提前致谢
答案 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 //
应包含所需的值。