0

I am validation rule in laravel view all validation rule but password and confirm password can not match if i am giving same password in both field. What is mistake done by me i am using custom message to both field.

blade:

<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>
            

controller:

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"); 
2

1 Answer 1

2

Laravel validation 'password' => 'min:4|confirmed',

it means it will look for this field to match password_confirmation

example

for 'foo' => 'min:4|confirmed',

it will look for a input file name="foo_confirmation" so here foo should match with foo_confirmation field

ref link https://laravel.com/docs/8.x/validation#rule-confirmed


in you case you need to change

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

remove cpassword

and

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

to

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

name cpassword to password_confirmation

Sign up to request clarification or add additional context in comments.

1 Comment

$query_select=DB::select('select * from table_users where email=? && password= ? or mobile_number=? && password= ?',[$email_address,$password,$email_address,$password]); how can i fetch name from this array

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.