2017-04-07 2 views
1

그래서 사용자 암호를 다시 설정해야하는 양식에서 데이터를 수신하고 있습니다 :
이전 암호 : | 필드 |
새 암호 : | 필드 |
암호 확인 : | 필드 |
그리고 이전 암호가 첫 번째 입력란에 입력 한 내용과 일치하지 않으면 사용자에게 메시지를 표시 할 수 있기를 원합니다. 전적으로 새로운 검증 방법을 만들고 싶지 않고 if()를 만들 때 에러를 던지기를 원합니다. 그래서 나는 내 블레이드 뷰에서 사용할 수있는 $ 오류 변수를 사용하여이를 어떻게 그래서 여기Laravel 5.4 유효성 검사기 오류에 메시지 추가

내가이

@if (count($errors) > 0) 
<div class="alert alert-danger"> 
    <ul> 
     @foreach ($errors->all() as $error) 
      <li>{{ $error }}</li> 
     @endforeach 
    </ul> 
</div> 
@endif 
하려는 관점에서

public function update(Request $request){ 
    $this->validate($request,[ 
     'oldPassword' => 'required', 
     'password' => 'required|min:8|confirmed' 
    ]); 
    $user = Auth::user(); 
    if(password_verify($request->newPass,$user->password)){ 
     $user = User::find($user->id); 
     $user->password = bcrypt($request->newPass); 
     $user->save(); 
    }else{ 
     //the code for adding a new key to $errors variable 
     return back(); Or return redirect('path'); 
    } 
} 

그래서 내 컨트롤러 방법의 예입니다

답변

3

당신은 당신의 컨트롤러에서이 작업을 수행 할 수 있습니다 : 다음

$validator = Validator::make($request->all(),[ 
    'oldPassword' => 'required', 
    'password' => 'required|min:8|confirmed' 
]); 

그리고 당신전에, 추가 :

$validator->after(function($validator) { 
    $validator->errors()->add('tagName', 'Error message'); 
}); 

메시지와 함께

관련 문제