Laravel 验证登录表单验证在密码确认中失败?

Posted

技术标签:

【中文标题】Laravel 验证登录表单验证在密码确认中失败?【英文标题】:Laravel Validation Login form validation fails in Password confimation? 【发布时间】:2014-11-18 18:57:58 【问题描述】:

我有两种表单,登录和注册表单,以及一个用户模型,我在 User 类中设置了我的规则和消息,它们是静态成员 $rules 和 $messages,我现在面临的问题是注册表格一切都验证它应该是,但是在登录表格中,在我输入正确的电子邮件和密码后,它给了我“密码确认不匹配”,它不应该因为登录表格中没有 password_confrimation 字段.

UserModel 中的规则和消息

public static $rules = [
    'email' => 'required|email',
    'password' => 'sometimes|required|confirmed',
    'password_confirmation' => 'sometimes|required'
    ];

public static $messages = [
    'email.required' => 'The email is required',
    'email.email' => 'the email attribute is not in a email format',
    'password.required' => 'the password is required'
];

登录操作

    $validateUser = Validator::make($inputs, User::$rules, User::$messages);

    $user = new User();
    $user->email = $inputs['email'];
    $user->password = $inputs['password'];

【问题讨论】:

也许最好为登录和注册定义单独的验证规则?我在我的用户模型中保留注册规则,在我的 SessionsController 中保留登录规则。 【参考方案1】:

我在我的项目中确实这样做了

public static $rules = array(
                        'email'      => 'required|email|unique:users,email',
                        'password'   => 'required|min:6',
                        'repassword' => 'same:password',
                        'group'      => 'exists:groups,id',
                        'last_name'  => 'required',
                        'first_name' => 'required',
                       );

试一试。

【讨论】:

它给了我另一个验证错误 密码确认不匹配。存在密码时需要输入密码确认字段。

以上是关于Laravel 验证登录表单验证在密码确认中失败?的主要内容,如果未能解决你的问题,请参考以下文章

Java 表单验证

extjs 在登录时显示确认表单

django登录注册验证之密码包含特殊字符,确认密码一致实现

Laravel 中的密码验证总是返回失败(Hash::check)

Laravel Auth 登录验证编辑

在 codeigniter 3.1.2 中,登录表单提交导致身份验证失败