ozzo를 사용한 검증은 내장된 구조의 검증 방법을 호출하지 않습니다.

王林
풀어 주다: 2024-02-13 13:30:10
앞으로
1226명이 탐색했습니다.

使用 ozzo 验证不会调用嵌入结构的验证方法

php 편집자 Yuzai는 ozzo 검증 라이브러리를 사용하면 데이터 검증이 쉽게 이루어질 수 있다는 사실을 발견했습니다. 그러나 때로는 임베디드 구조의 검증 메소드를 호출해야 하는 상황에 직면할 수도 있습니다. 그러나 ozzo 유효성 검사 라이브러리의 설계 원칙은 코드 단순성과 가독성을 보장하기 위해 구조에 포함된 유효성 검사 메서드를 호출하지 않는 것입니다. 구조에 내장된 검증 방식으로 인해 검증 로직이 복잡해지고 코드 유지 관리의 어려움이 커질 수 있기 때문입니다. 따라서 ozzo 검증 라이브러리를 사용할 때 우리는 이 원칙을 따르고 코드를 명확하고 유지 관리하기 쉽게 유지하기 위해 적절한 검증 방법을 선택해야 합니다.

질문 내용

저는 "github.com/go-ozzo/ozzo-validation/v4"을 사용하고 있습니다. 내 구조는 다음과 같습니다.

으아악

확인 방법은 다음과 같습니다.

으아악

내가 보낸 요청은 다음과 같습니다.

으아악

이 문제에 대해 func (m mystruct) verify()를 호출하고 싶지만 myotherstruct 유효성 검사기 호출 로그가 표시되지 않습니다. func (m mystruct) validate(),但我没有收到日志 calling myotherstruct validator

解决方法

问题中的源代码与ozzo 验证 v4 返回在结构中找不到字段 #0。除此之外,您应该将以下代码添加到 (myotherstruct).validate

해결 방법

ozzo 유효성 검사 v4가 포함된 질문의 소스 코드는 구조에서 찾을 수 없는 필드 #0을 반환합니다. 이 외에도 (myotherstruct).validate에 다음 코드를 추가해야 합니다.

으아악

이 데모를 사용해 보세요((mystruct).validate,则 (myotherstruct).validate 不会被调用,因为前者对 myotherstructhttps://www.php.cn/link/9f29450d2eb58feb555078bdefe28aa5

): 🎜 으아악 🎜전화해보시면 🎜아무것도 모르니 주의하세요. 🎜

위 내용은 ozzo를 사용한 검증은 내장된 구조의 검증 방법을 호출하지 않습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿