📜  在 laravel 中确认密码验证 - PHP (1)

📅  最后修改于: 2023-12-03 15:37:23.460000             🧑  作者: Mango

在 Laravel 中确认密码验证

在 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 应用程序中轻松实现这些验证规则。