public function addContact()
{
if (!$this->validate()) {
return null;
}
$model = new ContactForm();
foreach (['name', 'email', 'subject', 'body'] as $property) {
$model->$property = $this->$property;
}
return $model->save();
}
我收到此错误:
调用未知方法:frontend \ models \ ContactForm :: save()
这是完整的模型规则:rules model这是模型代码的其余部分:rest of model有人可以告诉我我怎么了吗?
如Sfili_81所述,您必须扩展ActiveRecord而不是Model才能调用save方法。但这仅在要将数据保存到数据库时才有意义。
您可以使用yii2-app-basic的默认逻辑,将通过ContactForm提交的数据通过电子邮件发送给已配置的管理员。为此,您只需要调用ContactForm的contact方法。
// SiteController::actionContact
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('contactFormSubmitted');
return $this->refresh();
}
如果要接收真实的电子邮件,还必须将mailer组件的useFileTransport
属性设置为false(在config / web.php中,否则每个邮件都将保存到运行时/邮件中。)>