Heim > Fragen und Antworten > Hauptteil
Beim Testen einer Post-Anfrage an api/register habe ich in Postman die folgende Fehlermeldung erhalten.
„Fehler: Ein Objekt vom Typ IlluminateValidationValidator kann nicht als Array in der Datei C:Usersazzamlaravel-appazzamnewapiappHttpControllersAuthController.php in Zeile 25 verwendet werden“
Das ist mein AuthController-Code:
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesAuth; use IlluminateSupportFacadesValidator; use AppModelsUser; use LaravelSanctumPersonalAccessToken; class AuthController extends Controller { public function register(Request $request) { //validation field $validUser=Validator::make($request->all(), [ 'name'=> 'required|string', 'email'=> 'required|email', 'password'=> 'required|string', ]); //create user $user= User::create([ 'name'=> $validUser['name'], 'email'=> $validUser['email'], 'password'=> bcrypt($validUser['password']), ]); //response return response([ 'user'=> $user, 'token'=> $user->createToken('secret')->plainTextToken, ], 200); } public function logout(Request $request) { //user $user= User::find(PersonalAccessToken::findToken(explode(' ',$request->header('Authorization'))[1])->tokenable_id); //delete token $user->tokens()->delete(); //reponse return response([ 'message'=> 'logout success', ], 200); } }
Kann mir jemand sagen, wo der Fehler liegt und wie ich die Variable $validUser anzeigen kann? Danke.
P粉4278776762023-12-13 10:50:24
$validUser=Validator::make
是一个验证器实例。
要验证并获取经过验证的输入,您可以执行以下操作:
$validUser = $request->validate([ 'name'=> 'required|string', 'email'=> 'required|email', 'password'=> 'required|string', ]);
如果您必须使用手动创建的验证器实例,您可以执行以下操作:
$validUser = Validator::make($request->all(), [ 'name'=> 'required|string', 'email'=> 'required|email', 'password'=> 'required|string', ])->safe()->all();
这些应该适用于 Laravel 8+