【问题标题】:laravel password and confirm password can not worklaravel 密码和确认密码不起作用
【发布时间】:2021-02-22 02:30:32
【问题描述】:

我是 laravel 中的验证规则 查看所有验证规则,但如果我在两个字段中提供相同的密码,则密码和确认密码不匹配。我犯了什么错误,我对这两个字段都使用了自定义消息。

刀片:

<div class="row">
                <div class="col-sm-6">
                    <div class="form-group">
                      <label for="inputPassword">Password</label>
                      <input type="password" class="form-control" id="inputPassword" placeholder="Enter Password" name="password">
                       <span class="text-danger">{{ $errors->first('password') }}</span>
                    </div>
                </div>
                <div class="col-sm-6">
                    <div class="form-group">
                      <label for="inputCPassword">Password</label>
                      <input type="password" class="form-control" id="inputCPassword" placeholder="Enter Confirm Password" name="cpassword">
                      </div>
                </div>
            </div>
            

控制器:

public function store(Request $req)
    {
        $user=new Users;
        $mytime = Carbon::now();
        $user->updated_at=$mytime->toDateTimeString();
        $user->created_at=$mytime->toDateTimeString(); 
        $user->name=$req->input('name');
        $user->email=$req->input('email');
        $user->password=$req->input('password');
        $user->cpassword=$req->input('cpassword');
        $user->mobile_number=$req->input('mobile_number');

        $messages = [
               'password.confirmed' => 'Your passwords were mismatched',
               'cpassword.min' => 'Your password must be at least 4 characters'
                    ];

        $rules=[
        'name' => 'required',
        'email' => 'required|email|unique:table_users',
        'mobile_number' => 'required|unique:table_users',
        'password' => 'min:4|confirmed',
        'cpassword'   => 'min:4|confirmed',
        ];

        $this->validate($req, $rules, $messages);

        $user->save();

        return redirect('login')->with('success',"You have successfully submitted data & now you can login"); 

【问题讨论】:

标签: laravel


【解决方案1】:

Laravel 验证'password' =&gt; 'min:4|confirmed',

这意味着它将寻找该字段以匹配password_confirmation

例子

'foo' =&gt; 'min:4|confirmed',

它将查找输入文件name="foo_confirmation",因此这里的foo 应该与foo_confirmation 字段匹配

参考链接 https://laravel.com/docs/8.x/validation#rule-confirmed


如果你需要改变

$rules = [
    'name' => 'required',
    'email' => 'required|email|unique:table_users',
    'mobile_number' => 'required|unique:table_users',
    'password' => 'min:4|confirmed',
];

删除cpassword

<input type="password" class="form-control" id="inputCPassword" placeholder="Enter Confirm Password" name="cpassword">

<input type="password" class="form-control" id="inputCPassword" placeholder="Enter Confirm Password" name="password_confirmation">

cpassword 命名为password_confirmation

【讨论】:

  • $query_select=DB::select('select * from table_users where email=? && password= ? or mobile_number=? && password= ?',[$email_address,$password,$email_address,$密码]);我如何从这个数组中获取名称
猜你喜欢
  • 2016-12-21
  • 1970-01-01
  • 2017-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 2020-09-03
  • 2018-08-04
相关资源
最近更新 更多