2017-02-04 2 views
9

날짜 필드가있는 경우에만 유효성을 검사하려고합니다. 내가 Laravel 5.2이 규칙에서 5.4Laravel 5.4 때때로 유효성 검사 규칙이 작동하지 않습니다.

에 Laravel 5.2에서 업그레이드하기 전에 잘 잘 작동 일하는 :이 새로운 규칙

public function rules() 
{ 
    return [ 
     'available_from' => 'sometimes|date', 
    ]; 

} 

를 유효성 검사 오류 The available from is not a valid date. 시도 5.4에서

public function rules() 
{ 
    return [ 
     'available_from' => 'date', 
    ]; 

} 

가 반환 여전히 동일한 오류가 발생하고 sometimes 규칙이 유효성 검사에 전혀 영향을 미치지 않는 것으로 보입니다. 이 오류를 제거하려면 어떻게해야합니까?

왜 Laravel이 이전에 작동했던 것을 변경했는지 이해할 수 없습니다 !!!

+1

날짜 형식은 무엇입니까? –

+0

이 형식은 'YYYY-MM-DD' 형식을 사용합니다. –

답변

17

Http \ Kernel.php의 \ Illuminate \ Foundation \ Http \ Middleware \ ConvertEmptyStringsToNull :: 클래스 때문에 문제가 발생합니다.

빈 필드를 제출하면이 미들웨어는 빈 문자열을 null로 변환합니다. 그런 다음 유효성 검사가 유효한 날짜 오류를 반환하지 않습니다. 자세한 내용은 docs을 확인하십시오.

는 그것은 Laravel docs에서 널 (NULL)

public function rules() 
{ 
    return [ 
     'available_from' => 'sometimes|nullable|date', 
    ]; 

} 

고정 할 수 있습니다

널 (NULL)

검증 아래의 필드가 null 일 수 있습니다. 에 null 값이 포함될 수있는 문자열 및 정수와 같은 프리미티브의 유효성을 검사 할 때 특히 유용합니다.

관련 문제