我在 Laravel 中有登錄表單,它使用電子郵件和密碼登錄網(wǎng)站。我已經(jīng)進(jìn)行了所有驗(yàn)證,除了密碼之外一切正常。當(dāng)我輸入錯(cuò)誤的密碼時(shí),它會(huì)進(jìn)入空白頁(yè),我想在密碼字段下寫一些錯(cuò)誤。我查看了相同的內(nèi)容:密碼驗(yàn)證,但它不起作用。任何幫助表示贊賞。這是我的代碼。登錄控制器.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 回答

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