vuejs에서 laravel 유효성 검사 오류를 표시하는 방법
참고: laravel에서 API를 작성하거나 vuejs 앱 프런트엔드를 빌드하는 방법에 대해서는 자세히 설명하지 않겠습니다. laravel 및 Vuejs 작성에 익숙하다면 익숙한 코드 스니펫으로 이 주제에 대해 논의하겠습니다.
다음과 같이 백엔드에서 오류 응답을 반환한다고 가정해 보겠습니다.
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'name' => 'required|string',
'email' => 'required|email|unique:users',
'gender' => 'required',
]);
if ($validator->fails()) {
return response()->json($validator->messages(), 400);
}
}
사용자가 프런트엔드에 빈 필드가 있다고 가정해 보겠습니다. 따라서 브라우저 네트워크 탭에서 백엔드의 laravel 유효성 검사 오류 응답은 다음과 같습니다.
이제 Vuejs 구성 요소에서;
응답 오류를 할당하는 데이터 개체에 상태가 있습니다.
export default {
data() {
return{
notifmsg: ''
}
},
catch()
함수에서 다음과 같이 laravel 유효성 검사 응답을 할당합니다..then(()=> {
// do some magic stuff here
}).catch(e => {
this.notifmsg = e.response.data
})
이제 문제는 다음과 같습니다.
백엔드에서 받은 응답을 반복하는 전통적인 방법을 사용하면 다음과 같습니다....
<div v-for="(errorArray, index) in notifmsg" :key="index">
<span class="text-danger">{{ errorArray}} </span>
</div>
...FE의 출력은 다음과 같습니다.
그래...이건 우리가 원하는게 아니지? 예.
그 이유는 laravel 앱의 유효성 검사 오류 응답이 객체 배열로 반환되기 때문입니다. 따라서 이를 해결하려면 다음과 같이 중첩 루프를 수행해야 합니다.
<div v-for="(errorArray, idx) in notifmsg" :key="idx">
<div v-for="(allErrors, idx) in errorArray" :key="idx">
<span class="text-danger">{{ allErrors}} </span>
</div>
</div>
출력은 다음과 같습니다.
팔...! 이것이 우리가 실제로 달성하고자 하는 것입니다. 읽어 주셔서 감사합니다...
의견이 있으시면 댓글 섹션에 기여를 남겨주세요...
Reference
이 문제에 관하여(vuejs에서 laravel 유효성 검사 오류를 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/jovialcore/how-to-display-laravel-validation-errors-in-vuejs-2g3c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)