在测试 api/register 的 post 请求时,我在 postman 中收到以下错误。
“错误:无法使用 IlluminateValidationValidator 类型的对象作为文件 C:Usersazzamlaravel-appazzamnewapiappHttpControllersAuthController.php 第 25 行中的数组”
这是我的 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);
}
}
谁能告诉我错误在哪里,以及如何查看 $validUser 变量?谢谢。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
$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+