Всем здравствуйте! Имеется две модели Feedback и Persons, в БД есть только таблица Persons - эта модель служит для выбора имени отправителя сообщения в форме. Связать две модели между собой у меня не получилось, так как модель feedback не имеет таблицы в БД. Подскажите, как сделать так, чтобы передать в setFrom имя и емайл отправителя, которые содержаться в таблице Persons?
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($feedback, 'sender')->dropDownList(\yii\helpers\ArrayHelper::map(Persons::find()->asArray()->all(), 'id', 'name'), ['prompt' => ' ']) ?>
<?= $form->field($feedback, 'text')->textarea(['rows' => 6]) ?>
<div class="form-group">
<?= Html::submitButton('Отправить', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
</div>
<?php ActiveForm::end(); ?>
public function actionView($login)
{
$model = Persons::findOne($login);
$feedback = new Feedback();
if ($feedback->load(Yii::$app->request->post()) && $feedback->contact($model['mail'])) {
Yii::$app->session->setFlash('success', 'Ваше сообщение отправлено');
return $this->refresh();
}
return $this->render('view', compact('model', 'feedback'));
}
public function contact($email)
{
if ($this->validate()) {
Yii::$app->mailer->compose()
->setTo($email)
->setFrom([Yii::$app->params['senderEmail'] => Yii::$app->params['senderName']])
->setSubject('Форма обратной связи')
->setHtmlBody($this->text)
->send();
return true;
}
return false;
}