📅  最后修改于: 2023-12-03 15:37:23.460000             🧑  作者: Mango
在 Laravel 中,确认密码验证可以在表单提交时验证用户输入的两次密码是否一致。这在创建用户账户和修改密码等场景中非常常见。
首先,我们需要创建一个验证器来验证用户提交的表单数据。使用以下 Artisan 命令可以创建一个新的验证器:
php artisan make:request ChangePasswordRequest
这将会在 app/Http/Requests
目录下创建一个名为 ChangePasswordRequest
的文件。我们可以在该文件中定义表单中所有输入的验证规则。在这里,我们需要使用 confirmed
验证规则来比较确认密码和密码是否一致:
public function rules()
{
return [
'password' => 'required|min:6',
'password_confirmation' => 'required|same:password',
];
}
在我们的控制器中,我们可以使用 ChangePasswordRequest
来验证表单数据。在我们的示例中,我们将会有一个名为 changePassword
的方法用于保存提交的表单数据。我们需要使用 validate
方法来验证表单数据:
use App\Http\Requests\ChangePasswordRequest;
public function changePassword(ChangePasswordRequest $request)
{
// 保存表单数据
}
在上述代码中,我们使用 ChangePasswordRequest
来验证 $request
中的所有数据。如果验证失败,Laravel 将会自动返回带有错误信息的响应。
如果我们的表单验证失败,我们需要把错误信息显示给用户。在 Laravel 中,我们可以使用 $errors
变量来显示所有错误信息。以下是如何在模板中使用 $errors
:
<form method="POST" action="{{ route('password.change') }}">
@csrf
<div class="form-group">
<label for="password">新密码</label>
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" name="password" autocomplete="new-password" required>
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group">
<label for="password_confirmation">确认密码</label>
<input id="password_confirmation" type="password" class="form-control" name="password_confirmation" autocomplete="new-password" required>
</div>
<button type="submit" class="btn btn-primary">修改密码</button>
</form>
在上述代码中,我们使用 @error('password')
Blade 指令来检查 $errors
变量是否包含名为 password
的验证错误。如果有错误,我们将会显示带有错误消息的 <strong>
标签。
以上就是在 Laravel 中使用确认密码验证的方法。使用上述的验证器、控制器和模板代码可以在您的 Laravel 应用程序中轻松实现这些验证规则。