在測試 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 變數?謝謝。
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