2013-12-08 7 views
0

지금 Laravel 4 유효성 확인 작업을하고 있습니다. 기본 설정이 완료되고 테스트됩니다. 보기에서 양식을 채우고 컨트롤러에 제출할 수 있습니다. 모델을 사용하여 모든 세부 사항을 데이터베이스에 저장할 수 있습니다. 유효성 검사에 지금 문제가 있습니다.laravel 4의 유효성 검사 사용법

나는 Input :: get()를 사용하여 컨트롤러에 게시 된 각 변수를 캡처합니다. 검증은 이상적으로 모델에서 수행되어야한다고 읽었습니다. 유효성 검사기를 어디에서 호출해야합니까? 모델 또는 컨트롤러? validator에 $ 입력을 어떻게 전달해야합니까? 그것이 게시 된 모든 변수의 배열입니까 아니면 내가 놓친 것입니까?

Laravel 4 설명서는 일반적인 사용법에 대한 예를 들어 설명하지 못합니다.

이것은 내가 내 모델에서 설정 한 검증은 다음과 같습니다

public static function validate($input) 
    { 
     $rules = array(
      # place-holder for validation rules 
      'firstname' => 'Required|Min:3|Max:40|Alpha', 
      'lastname' => 'Required|Min:3|Max:40|Alpha', 
      'email'  => 'Required|Between:3,64|Email|Unique:users', 
      'country'  => 'Required', 
      'password' =>'Required|AlphaNum|Between:7,15|Confirmed', 
      'password_confirmation'=>'Required|AlphaNum|Between:7,15' 

     ); 

     # validation code 
     $validator = Validator::make($input, $rules); 

     /*if($validator->passes()) { 

     } else { 
      # code for validation failure 
     }*/ 
    } 

컨트롤러 :

public function register() 
    { 
     /*Create new user if no user with entered email exists. Use validator to ensure all fields are completed*/ 
     $user = new User; 

     /*Handle input in POST*/ 
     $email = Input::get('email'); 
     $password = Input::get('password'); 
     $passwordConfirmed = Input::get('password_confirmation'); 
     $firstName = Input::get('firstname'); 
     $lastName = Input::get('lastname'); 
     $country = Input::get('country'); 

     $user->email = $email; 
     $user->password = Hash::make($password); 
     $user->firstname = $firstName; 
     $user->lastname = $lastName; 
     $user->country = $country; 

     //$user->save(); 


     $this->layout->content = View::make('test'); 
    } 

하고 검증에 관해서 지금까지 this link 다음 왔습니다. 내가

답변

1

당신은 검증의 입력 누락이 프레임 워크에 새로운 오전으로 도와주세요, 당신은

$input = Input::all(); 

$validator = Validator::make($input, $rules); 

또는

$validator = Validator::make(Input::all(), $rules); 

및처럼 사용하여 정의되지 않았다 포럼을 살펴보면 블로그보다 더 많이 도움이 될 것입니다. http://forums.laravel.io/viewtopic.php?id=12104

+0

Sho 유효성 검사가 컨트롤러 또는 모델에서 발생합니까? 이것에 대한 명확한 정보는 없지만 로직이 주어진 컨트롤러는 짐작할 수 있습니다. – spacemonkey

+0

건물에 무엇이 들어 있는지 선택하고 모델에 배치하려면 선택 사항이며,이 패키지를 체크 아웃해야합니다. https : // github .com/laravelbook/ardent, 많은 사람들이 내 자신을 포함하여 그것을 사용하여 많은 시간과 그 힘을 덜어 줄 것입니다. –

+0

감사원이 컨트롤러에서 작동하도록했습니다. 일부 블로그의 권장 사항이 모델에서 사용하도록 명시되어 있지만 스토리지와 관련하여 로직이 아니며 데이터가 모델에 도달해서는 안된다는 전제하에 컨트롤러를 사용하기로 결정했습니다. – spacemonkey