2016-08-08 2 views
2

나는 Laravel 학습 및 검증 규칙 required_unless from Laravel 5.2을 사용하여 해결 될 것입니다 전체의 검증 문제 온되었습니다Laravel 4.2 검증 : 최근 required_unless

$validator = Validator::make(
    array(
     'social_id' => $social_id, 
     'login_by' => $login_by 
    ), array(
     'social_id' => 'required_unless:login_by,manual', 
     'login_by' => "in:manual,google,facebook, stack_exchange, myspace" 
    ) 
); 

문제는 내가 Laravel 4.2 사용하는 것이이며,이 유효성 검사 규칙이 구현되지 않습니다 제트기.

내가 사용할 수있는 다른 유효성 검사 규칙이 있습니까?

그렇지 않은 경우 사용자 지정 유효성 검사 규칙을 작성하는 방법은 무엇입니까?

편집 :

$validator = Validator::make(
    array(
     'social_id' => $social_id, 
     'login_by' => $login_by 
    ), array(
     'social_id' => 'required_if:login_by,google,facebook, stack_exchange, myspace', 
     'login_by' => "in:manual,google,facebook, stack_exchange, myspace" 
    ) 
); 

을 ...하지만 그냥 해결하지 우아한 영구적 인 해결책이다 : 나는 할 수있다.

+1

4.2 또는 5.2 당신이 무엇을 사용합니까 확장이 같은

뭔가? –

+0

그는 L4.2를 사용 중입니다 – PeterPan666

답변

2

extend 메서드를 사용하여 유효성 검사기를 확장 할 수 있습니다.

Validator::extend('required_unless', function ($attribute, $value, $parameters) { 
    // Implement your version of required_unless here 
}); 

그리고 심지어 당신의 문서를 볼 수 있습니다 L5.2 here

에서 논리의 비트를 도용가 here

+0

Laravel 구현은 $ this-> data를 참조합니다. 필자가 작성하라고 제안한 기능은 Validator를 확장하지 않기 때문에 사용할 수 없습니다. 그렇다면 Validator를 확장하는 자체 클래스를 만들어야한다는 의미입니까? – aljazerzen

+0

클로저 안에 '$ this-> data'를 사용할 수 없습니다. 기본 유효성 검사기의 내용이 필요하면 자신의 Validator 클래스가 필요합니다. 위 문서 링크, "Validator 클래스 확장"섹션을 참고하십시오. – PeterPan666

+0

그 수업을 어디에 두어야할까요? – aljazerzen