我正在尝试使用 laravel 10 制作 Auth API。在 API 中,我希望用户使用电子邮件或电话号码进行注册,但登录时我只想使用电话号码。
所以,我在注册和登录表单中使用了这种方法,但是当我在邮递员中测试它时,我收到此错误:
错误“BadMethodCallException:方法 Illuminate\Validation\Validator::validatePhone 不存在。”
// Register API (POST, formdata)
public function register(Request $request){
// data validation
$request->validate([
"name" => "required",
"email" => "email|unique:users",
"phone" => "required|phone:ML",
"password" => "required|confirmed"
]);
// Author model
User::create([
"name" => $request->name,
"email" => $request->email,
"phone" => $request->phone,
"password" => Hash::make($request->password)
]);
// Response
return response()->json([
"status" => true,
"message" => "User created successfully"
]);
}
// Login API (POST, formdata)
public function login(Request $request){
// Data validation
$request->validate([
//"email" => "required|email",
"phone" => "required|phone:ML",
"password" => "required"
]);
// Auth Facade
if(Auth::attempt([
//"email" => $request->email,
"phone" => $request->phone,
"password" => $request->password
])){
$user = Auth::user();
$token = $user->createToken("myToken")->accessToken;
return response()->json([
"status" => true,
"message" => "Login successful",
"access_token" => $token
]);
}
return response()->json([
"status" => false,
"message" => "Invalid credentials"
]);
}
我正在关注论坛帖子进行电话验证,他们使用这个
$request->validate([ // Allow only phone numbers from the FR 'phone_number' => 'required|phone:FR', ]);
所以我尝试将它与马里代码女巫的ML集成