>  기사  >  백엔드 개발  >  laravel API 인터페이스는 Validator를 사용하며 검증에 실패한 특정 오류 정보를 반환할 수 없습니다.

laravel API 인터페이스는 Validator를 사용하며 검증에 실패한 특정 오류 정보를 반환할 수 없습니다.

WBOY
WBOY원래의
2016-10-19 10:40:491985검색

Validator는 API 인터페이스에서 양식을 검증하는 데 사용됩니다.
검증을 통과한 항목이 있으면
모두 반환됩니다

<code>{
  "message": "The given data failed to pass validation.",
  "status_code": 500
}</code>

검증을 통과하지 못한 특정 정보는 반환할 수 없습니다.
프런트엔드나 모바일 단말기에서 반환된 오류 메시지를 받은 경우
어떤 항목이 요구 사항을 충족하지 않는지 사용자에게 알릴 수 없습니다.
나는 무엇을 내가 원하는 건 이거다;

<code>{
  "message": "邮箱已经注册",
  "status_code": 500
}

{
  "message": "必须是6-16位的密码",
  "status_code": 500
}</code>

어떻게 해야 하는지 알려주세요.

laravel을 사용하여 인터페이스를 작성할 때
제출된 양식 필드는 어떻게 확인되나요? 확인 결과를 어떻게 반환하나요?

답글 내용:

Validator는 API 인터페이스에서 양식을 검증하는 데 사용됩니다.
검증을 통과한 항목이 있으면
모두 반환됩니다

<code>{
  "message": "The given data failed to pass validation.",
  "status_code": 500
}</code>

검증을 통과하지 못한 특정 정보는 반환할 수 없습니다.
프런트엔드나 모바일 단말기에서 반환된 오류 메시지를 받은 경우
어떤 항목이 요구 사항을 충족하지 않는지 사용자에게 알릴 수 없습니다.
나는 무엇을 내가 원하는 건 이거다;

<code>{
  "message": "邮箱已经注册",
  "status_code": 500
}

{
  "message": "必须是6-16位的密码",
  "status_code": 500
}</code>

어떻게 해야 하는지 알려주세요.

laravel을 사용하여 인터페이스를 작성할 때
제출된 양식 필드는 어떻게 확인되나요? 확인 결과를 어떻게 반환하나요?

Laravel은 오류 형식을 사용자 정의할 수 있으므로 컨트롤러 기본 클래스의 formatValidationErrors 메서드

를 재정의해야 합니다.
<code>use Illuminate\Contracts\Validation\Validator;

protected function formatValidationErrors(Validator $validator)
{
     $message = $validator->errors()->first();
     return ['message'=>$message, 'status_code' => 500];
}</code>

필요에 따라 확장할 수도 있습니다. 위는 단순한 예일 뿐이며 첫 번째 오류 메시지가 반환됩니다.

dingo/api 유효성 검사 핸들러

를 사용하는 경우

물론 그럴 수도 있습니다

<code>if ($validator->fails()) {
     //自行封装个处理验证失败返回值 类似下面
     $this->respondWithValidatorError($validator->errors());    
}
</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:쿠키 로그인 원리다음 기사:쿠키 로그인 원리