Ошибка проверки Laravel


Почему моя проверка не работает, но если я одобрю проверку, код будет успешно запущен. [Вот мой контроллер][1]

Пароль для изменения функции (Запрос $req){

    $this->validate(
        $req,
        [
            'currpassword' => 'required | min:5',
            'newpassword' => 'required | min:5',
            'confirmnewpassword' => 'required| same:newpassword |min:5' 
        ]);

    // Validasinya gajalan

    $id = $req->input('id');
    $data = User::find($id);

    $currpassword = $req->input('currpassword');
    $newpassword = $req->input('newpassword');
    $confirmnewpassword = $req->input('confirmnewpassword');

    $currpass = $req->input('currpassword'); // password yang lama

    $currpasshash = Hash::make('currpassword');

    if (Hash::check($currpass , $data->password)) { 
        $data->password = Hash::make($newpassword);
        $data->save();
        return redirect('profile'); 

    }
    else{
        return redirect('changepassword');
    }


}
Author: Kenny Nataniel, 2018-03-27

3 answers

Вы можете попробовать этот код.

function changepassword(Request $req) {
    $validatedData = $request->validate([
        'currpassword' => 'required|min:5',
        'newpassword' => 'required|min:5',
        'confirmnewpassword' => 'required|same:newpassword|min:5' 
    ]);
}

Отображение Ошибок Проверки

<h1>Create Post</h1>

@if ($errors->any())
   <div class="alert alert-danger">
      <ul>
           @foreach ($errors->all() as $error)
               <li>{{ $error }}</li>
           @endforeach
      </ul>
   </div>
@endif

Для получения дополнительной информации посетите Проверка в Laravel

Я надеюсь, что это поможет вам...

 1
Author: Jay Chauhan, 2018-03-27 12:42:56

Вы передали неверный параметр в свой метод проверки, попробуйте это,

$this->validate(
    $req->all(), [
        'currpassword' => 'required | min:5',
        'newpassword' => 'required | min:5',
        'confirmnewpassword' => 'required| same:newpassword |min:5' 
    ]);
 2
Author: Sazzadur Rahman, 2018-03-27 07:11:39

Между полем с именем newpassword и символом pip | есть пробел, и laravel определяет имя поля как "новый пароль" вместо "новый пароль", что всегда приводит к ошибке.

Удалите пробел и попробуйте:

'confirmnewpassword' => 'required | same:newpassword| min:5' 
 1
Author: Manojkumar B, 2018-03-27 12:11:38