我在 Laravel 中有登錄表單,它使用電子郵件和密碼登錄網站。我已經進行了所有驗證,除了密碼之外一切正常。當我輸入錯誤的密碼時,它會進入空白頁,我想在密碼字段下寫一些錯誤。我查看了相同的內容:密碼驗證,但它不起作用。任何幫助表示贊賞。這是我的代碼。登錄控制器.phppublic function login(Request $request){ $rules = [ 'email' => 'required|email|exists:App\User,email', 'password' => 'required|alphaNum|min:5' ]; $validator = Validator::make($request->all(), $rules); if ($validator->fails()) { $request->session()->put('data', $request->input()); return redirect()->route('login') ->withErrors($validator->errors()) ->withInput($request->session()->put('data', $request->input())); } else { $userData = array( 'email' => $request->get('email'), 'password' => $request->get('password') ); } if (Auth::attempt($userData)) { return redirect()->route('dashboard'); } else { redirect()->route('login'); }}登錄.blade.php<div class="login-page"> <div class="login-box"> <div class="card mb-0"> <div class="card-body login-card-body"> <p class="login-box-msg font-weight-bold">Sign in to start your session</p> <form method="POST" class="mb-4" action="{{route('login') }}"> @csrf <div class="input-group mb-3"> <input id="email" type="email" placeholder="Email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }}" required autocomplete="email" autofocus> <div class="input-group-append"> <div class="input-group-text"> <span class="fas fa-user"></span> </div> </div> @error('email') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror
1 回答

藍山帝景
TA貢獻1843條經驗 獲得超7個贊
假設您的電子郵件是unique
,您首先必須獲取其所在的數據庫行$request->email
:$user = User::where('email', $request->email)->first()
然后您可以使用以下方法進行檢查:Hash::check($request->password, $user->password)
https://laravel.com/docs/7.x/hashing
@編輯
要將其添加到規則中,您必須創建一個規則類:php artisan make:rule myRuleName
然后您將這樣調用它:
$rules = [ 'email' => 'required|email|exists:App\User,email', 'password' => ['required','alphaNum','min:5', new myRuleName()], ];
在您的自定義規則類中,您將找到一個passes($attribute, $value)
函數?,F在你可以將我上面編寫的代碼插入到這個方法中。你必須替換$request->password
為$value
- 1 回答
- 0 關注
- 138 瀏覽
添加回答
舉報
0/150
提交
取消