Laravel 4.2와 웅변에 그저 손을 대지 만. 나는 laracasts.com의 Scratch 캐스트에서 Laravel을 보았습니다. 특히 유효성 검사와 후속 리팩터링에 대한 교훈이었습니다. 이 레슨을 통해 사용 된 예제는 상대적으로 기본적인 사용자 모델을 처리하므로 사용자 이름과 비밀번호 필드가 2 개만 있습니다. 내 사용자 모델에 더 많은 필드가 포함되어 있으며 등록 양식에서 사용자가 입력 한 비밀번호를 다시 입력하거나 확인하도록 요청합니다.Laravel/Eloquent : 모델 내 유효성 확인
사용자 입력의 유효성을 검사하는 과정이 모델 내에서 이루어져야한다는 것이 합리적입니다. 따라서 튜토리얼과 마찬가지로 나는 isValid
메서드를 내 모델에 추가하여 등록 양식의 사용자 입력을 검증합니다.
$input = Input::all();
if (!$this->user->fill($input)->isValid()) {
return Redirect::back()->withInput()->withErrors($this->user->errors);
}
그래서 내 규칙을 작성 및 검증 작업을했고, 지금은 데이터베이스에 사용자의 입력을 저장하기 위해 준비했습니다 :이 같은 입력을 기반으로 내 사용자 모델을 입력합니다. 그러나 모델 전체 인스턴스를 입력 했으므로 이제 사용자 모델 인스턴스에 confirm_password
의 특성이 포함되고 $user->save();
을 호출하면 데이터베이스 테이블에이 필드가 없기 때문에 오류가 발생합니다. 또한, 유효성을 검사하기 위해 사용자 입력을 전달한 이후 암호가 해시되지 않습니다.
사용자 입력의 유효성 검사와 관련하여 취할 수있는 최상의 접근 방법은 모델이 실제로 데이터베이스 테이블을 나타내는 것입니까? 나는 모델 밖에서 유효성 검사를 이동하고 모델에 유효성 검사 규칙을 저장하게하는 등의 작업을 수행하여 모든 것을 처리 할 수있는 방법이 있음을 알고 있지만 모범 사례에 대한 조언을 구할 수 있습니다.
감사
암호 해싱에'mutator'를 사용하고'confirm_password'를 설정 해제하기 위해'save' 이벤트를 사용할 수 있습니다. 그러나 어쨌든 모델에서 유효성 검사를하지는 않을 것이고, '단순한'솔루션은 현재와 같이 유연성이 부족하고 더 많은 복잡성을 초래할 수 있습니다. –