1. TaskComponent.vue
create modal을 복사 후 붙여넣기 한 다음 수정해서 사용한다.
2. methods:{} 에 업데이트 모달창이벤트메서드를 만들어준다.
//업데이트 모달창 오픈
loadUpdateModal(){
},
3. Edit 버튼에 이벤트메서드호출을 등록한다.
<button @click="loadUpdateModal" class="btn btn-info">Edit</button>
4. new_update_task[] 배열을 만들어준다.
export default {
data() {
return {
task: {
name: "",
body: ""
},
tasks: [],
uri: "http://laravelvuecrud.test/tasks/",
errors: [],
new_update_task:[]
};
},
5. 에러배열을 삽입하고, 모달창 오픈, 해당버튼의 인덱스를 가져온다.
//업데이트 모달창 오픈
loadUpdateModal(index){
this.errors = [];
$("#update-modal").modal("show")
this.new_update_task = this.tasks[index];
},
6. v-model을 수정해준다.
<div class="form-group">
<label for="name">Name</label>
<input v-model="new_update_task.name" type="text" id="name" class="form-control">
</div>
<div class="form-group">
<label for="description">Description</label>
<input v-model="new_update_task.body" type="text" id="description" class="form-control">
</div>
7. updateTask 메서드를 작성한다.
테스트 코드
updateTask(){
console.log(this.new_update_task.name);
},
8. 브라우저에서 확인
9. 최종 업데이트 로직
updateTask() {
axios
.patch(this.uri + this.new_update_task.id, {
name: this.new_update_task.name,
body: this.new_update_task.body
})
.then(response => {
//실행후 모달 닫는 로직
$("#update-modal").modal("hide");
})
.catch(error => {
//에러처리
this.errors = [];
if (error.response.data.errors.name) {
this.errors.push(error.response.data.errors.name[0]);
}
if (error.response.data.errors.body) {
this.errors.push(error.response.data.errors.body[0]);
}
});
},
10. 브라우저 실행
'라라벨 > laravel vue crud' 카테고리의 다른 글
11. 글작성 후 데이터가 남는 문제 해결 (0) | 2020.02.28 |
---|---|
10. Delete (0) | 2020.02.28 |
8. 유효성 검사 (0) | 2020.02.27 |
7. Database Modal Create (0) | 2020.02.27 |
6. Databases Data 불러오기 (0) | 2020.02.27 |