Maison > Questions et réponses > le corps du texte
Lors du test d'une demande de publication sur api/register, j'ai reçu l'erreur suivante dans postman.
"Erreur : Impossible d'utiliser un objet de type IlluminateValidationValidator comme tableau dans le fichier C:Usersazzamlaravel-appazzamnewapiappHttpControllersAuthController.php à la ligne 25"
Voici mon code AuthController :
<?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); } }
Quelqu'un peut-il me dire où se trouve l'erreur et comment afficher la variable $validUser ? Merci.
P粉4278776762023-12-13 10:50:24
$validUser=Validator::make
est une instance de validateur.
Pour valider et obtenir une entrée validée, vous pouvez procéder comme suit :
$validUser = $request->validate([ 'name'=> 'required|string', 'email'=> 'required|email', 'password'=> 'required|string', ]);
Si vous devez utiliser une instance de validateur créée manuellement, vous pouvez procéder comme suit :
$validUser = Validator::make($request->all(), [ 'name'=> 'required|string', 'email'=> 'required|email', 'password'=> 'required|string', ])->safe()->all();
Ceux-ci devraient fonctionner sur Laravel 8+