php 편집자 Baicao가 github.com/go-playground/validator/v10 패키지의 필수_if 조합에 대한 질문을 소개하기 위해 왔습니다. 데이터 유효성 검사를 위해 이 패키지를 사용할 때 특정 필드의 값을 기반으로 다른 필드가 필요한지 여부를 결정해야 하는 경우가 있습니다. 이때 이 요구 사항을 충족하려면 필수_if 조합 규칙을 사용할 수 있습니다. 특정 조건에 따라 해당 분야가 필요한지 여부를 판단할 수 있어 매우 유연하고 실용적입니다. 이 글에서는 이 문제를 해결하기 위해 require_if 조합 규칙을 사용하는 방법을 자세히 설명합니다.
패키지 버전, 예. v9, v10:
패키지 버전: v10
질문, 문제 또는 개선 사항: 아래 코드를 실행하려고 할 때. 이 오류가 발생했는데 유선으로 연결되었습니다
출력
으아악시연 또는 재현을 위한 코드 예:
으아악코드 또는 유효성 검사 패키지에서 문제를 파악할 수 없습니다. 어떤 도움이라도 주시면 감사하겠습니다...
추가 omitempty
예:
으아악
playground의 전체 예(가져온 패키지 수의 크기로 인해 Playground에서는 안정적으로 실행되지 않습니다.)
문제는 required_if
로 인해 라이브러리가 Person
//Entity
가 존재하는지 확인하지만 라이브러리는 여전히 빈 항목의 유효성을 검사한다는 것입니다. Person
/Entity
(실패합니다!) required_if
导致库检查 Person
//Entity
是否存在,但库仍会验证空的 Person
/Entity
(并且失败!)。添加 omitempty
意味着库将忽略空的 struct
;这提供了所需的结果,因为 required_if
将确保任何必需的 struct
를 추가하면 라이브러리가 빈 struct
를 무시한다는 의미입니다. 이는 required_if
가 필수 struct
가 비어 있지 않은지 확인하므로 원하는 결과를 제공합니다. 확인됩니다.)
또 다른 옵션은 포인터를 사용하는 것입니다(playground):
으아악여기서의 차이점은 Entity
时,该值将为 nil
(与具有默认值的 Entity
相反),这意味着 validator
없이는 유효성 검사가 불가능하다는 것입니다.
참고: v := validator.New(validator.WithRequiredStructEnabled())
(문서에 따라)를 사용하는 것이 좋습니다.
위 내용은 github.com/go-playground/validator/v10 패키지의 필수_if 조합 관련 문제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!