我的代码有什么问题?我收到ArgumentCountError
一条消息
函数 App\Http\Controllers\UserController::add() 的参数太少,传递了 0 个
控制器的功能
public function add($request){
$request->validate([
'name' => 'required|string|max:50',
'email' => 'required|string|email|max:50|unique:tblmember,Email',
]);
$newid = DB::table('tblmember')->insertGetId([
'name' => $request->name,
'email' => $request->email,
]);
return response()->json(['message' => 'Member added successfully', 'MemberID' => $newid], 201);
}
路线
Route::post('/users/add', [UserController::class, 'add'])->name('users.add');
阿贾克斯
$.ajax({
url: "/users/add",
type: "POST",
data: {
name : name,
email : email,
_token : "{{ csrf_token() }}"
},
success: function(response) {
...
},
error: function(xhr) {
...
}
}
});
您的问题是 add() 方法需要一个参数(
$request
),但是除非类型提示为,否则 Laravel 不会自动注入它Request
。修改您的控制器方法以正确接受请求:
为什么?
$request
未被识别为 的实例Request
,因此 Laravel 没有自动传递它。添加Request $request
可确保 Laravel 正确注入请求对象。现在,您的 AJAX 请求应该可以按预期工作。🚀