Laravel 9.x 联系表单无法连接到课堂



我正在尝试制作一个联系人表格。主要想法是用户发送数据,我将数据保存到数据库,我将从数据库中获取数据,我会将数据作为电子邮件发送。

我在遵循一个教程->https://www.positronx.io/laravel-contact-form-example-tutorial/

当我试图在我的控制器上访问类时,它找不到它。

管制员说这个

但我这里有文件

当我运行代码时,我得到了这个->无法实例化抽象类Illuminate\Database\Eloquent\Model

ContactUsFormController.php

namespace AppHttpControllers;
use IlluminateHttpRequest;
use appModelsContact;
use IlluminateDatabaseEloquentModel;
use IlluminateSupportFacadesMail;
class ContactUsFormController extends Controller
{
//create contact form
public function createForm(Request $req){
return view('contact');
}
//store contact form data
public function ContactUsForm(Request $req){
//form validation 
$this->validate($req,[
'name' => 'required',
'email' => 'required | email',
'subject' => 'required',
'message' => 'required'
]);
//store data in database
Model::create($req->All());
//send mail to admin
Mail::send('mail',array(
'name' => $req->get('name'),
'email' => $req->get('email'),
'subject' => $req->get('subject'),
'message' => $req->get('message')
),function($message) use ($req){
$message->from($req->email);
$message->to('MyMail@example.com','admin')->subject($req->get('subject'));
});
return back()->with('success', 'We have recieved your message');
}
}

这个让我思考。在教程中,他没有在这个文件中写入任何代码,但仍然从那里调用一个类。app\Mails\contact.php

<?php
namespace AppMail;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
class contact extends Mailable
{
use Queueable, SerializesModels;
public function __construct()
{
//
}
public function build()
{
return $this->view('view.name');
}
}

app\Models\Contact.php

namespace AppMail;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
class Contact extends Model
{
use HasFactory;
public $fillable = ['name', 'email', 'subject', 'message'];
}

我有打字错误吗?我缺少什么?对不起,我是的初学者

您称之为Model::create();模型的问题只是一个抽象类,而不是您的具体模型

更换

Model::create($req->All());

带有

Contact::create($req->All());

还将Contact模型中的namespace AppMail;更改为命名空间AppModels;

要了解有关邮件外观的更多信息,请查看此

https://laravel.com/docs/9.x/mail#sending-邮件

我希望有用

最新更新