2016-09-18 3 views
0
내가 laravel를 사용하여 내 양식 필드를 유효성을 검사 할

5.Laravel 5 명하는 검증

양식 필드 1 -> 사용자 ID :

양식 필드 2 -> 다른 이름 :

양식 필드 중 하나를 필요합니다. 사용자 ID가 있으면 다른 이름이 비어 있어야하고 다른 이름이있는 경우 user_id은 비워 두어야합니다.

내가 사용하려고 : 사용자 ID가있는 경우에도 기록을 갱신

$validator = Validator::make(
          [ 
         'user_id ' => $user_id, 
         'user_name' => $user_name 
          ], [ 
         'user_id' => 'required_without:user_name', 
         'user_name' => 'required_without:user_id' 
      ]); 
      if ($validator->fails()) { 
       return Utility::validation_err($validator); 
      } 

동안은 다른 이름이 존재하지 않을 때 필요 나에게 오류 사용자 ID를 제공합니다. 또한 두 가지를 모두 채우는 경우 둘 다 받아들입니다. 두 필드 중 하나를 받아 들여야합니다.

도움이 될 것입니다.

+0

[이 질문과 답변의 유형과 동일] (http://stackoverflow.com/questions/30635678/laravel-validation-required-only-and-only-one-field) –

답변

1

예를 들어 "only_one_id_name_required"에 대한 고유 한 유효성 검사 규칙을 사용할 수 있습니다. 두 필드 모두에 적용되어야합니다. 다음 \ 응용 프로그램 \ 공급자에 AppServiceProvider

Validator::extendImplicit('only_one_id_name_required', function($attribute, $value, $parameters, $validator) { 
    return (request()->has('user_id') xor request()->has('user_name')); 
}); 

사용 extendImplicit을 (검사기 확장) 대신 빈 필드 요청 다루() 확장했습니다.