我正在构建一个投诉管理系统,并在 laravel 中配置 mailtrap 来发送邮件。我想要的是当用户添加新投诉时,系统会自动向管理员发送一封“新投诉”电子邮件。我在控制器的添加新投诉功能中编写了一个简单的代码,但是当我运行该应用程序时,出现了一个我不明白的错误。
传递给 Illuminate\Database\Eloquent\Builder::create() 的 TypeError 参数 1 必须是数组类型,给定对象,在 C:\xampp\htdocs\Complain-Management-System\vendor\laravel\framework\src\ 中调用Illuminate\Support\Traits\ForwardsCalls.php 在第 23 行
这是我的创建功能:
public function create(Request $data)
{
// dd($data['user_id']);
$data->validate([
'type' => 'required',
'station' => 'required',
'description' => 'required|min:20|max:1000',
]);
Complaint::create([
'type' => $data['type'],
'station' => $data['station'],
'description' => $data['description'],
'comment' => $data['comment'],
'status' => $data['status'],
'user_id' => $data['user_id']
]);
$complaint = Complaint::create($data);
Mail::send('emails.test', $complaint->toArray(),function($message) {
$message->to('tm.talhamaqsood18@gmail.com', 'Test Mail')
->subject('Complaint Created');
});
return redirect()->route('all-complaints');
}
这是路线:
Route::post('complaints', [App\Http\Controllers\ComplaintController::class, 'create'])->name('new-complaint')->middleware('loggedIn');