Я пытаюсь обновить данные, которые поступают из дочернего компонента в приложении Vue.js Laravel, и по какой-то причине я не могу это сделать прямо сейчас. Возврат, данный инспектором, говорит мне
Создание объекта по умолчанию из пустого значения
Родительский компонент открывает модальный, который является дочерним компонентом, затем информация должна обновляться с помощью метода update (). Может кто-нибудь помочь мне понять, чего мне не хватает?
Это в основном img моей базы данных, чтобы понять, как она структурирована:
Эти методы находятся в моем родительском компоненте Log.vue, и вот как я передаю данные из родительского в дочерний компонент:
<log-edit v-if="editModalOpen" :logId="logId" :logUser="logUser" :logTitle="logTitle" :logType="logType" :logDescription="logDescription" :logDate="logDate" @closeRequest='close'></log-edit>
<td @click="openEdit(log.id,log.user,log.title,log.type,log.description,log.created_at)"><i class="fas fa-edit"></i></td>
<script>
methods:{
openEdit(id,user,title,type,description,date){
this.logId = id;
this.logUser = user;
this.logTitle = title;
this.logType = type;
this.logDescription = description;
this.logDate = date;
this.editModalOpen = true;
},
}
<script>
Это EditLog.vue, который является дочерним компонентом, получающим данные от родительского элемента выше:
<template>
<div class="container">
<div id="overlay">
<div class="edit-detail-window">
<div class="modal-header">
<h3 class="modal-title" id="exampleModalLongTitle">{{logTitle}}</h3>
<button type="button" class="close">
<i class="fas fa-times" @click="close"></i>
</button>
</div>
<div id="show-detail-modal-body" class="modal-body">
<br>
<label>Title:</label>
<input class="form-control" type="text" v-model="logTitle">
<br>
<label>Type:</label>
<select v-model="logType" class="form-control" ><br>
<option value="" disabled selected>Type</option>
<option>Client Update</option>
<option>Dev Update</option>
<option>Bug</option>
<option>Style Fix</option>
</select>
<br>
<label>Description:</label>
<textarea class="form-control" cols="30" rows="5" v-model="logDescription"></textarea>
</div>
<div class="modal-footer">
<button d="log-it" type="button" class="btn btn-circle btn-xl" @click="update(logTitle, logType, logDescription)">
<span><b>EDIT</b></span>
</button>
</div>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios';
export default {
name:'EditLog',
props:['logId','logUser','logTitle','logType','logDescription','logDate'],
data(){
return{
log:{title:'',type:'',description:''},
errors:{}
}
},
methods:{
close(){
this.$emit('closeRequest');
},
update(title,type,description){
this.log.title = title;
this.log.type = type;
this.log.description - description;
window.axios.patch(`/develogger-app/public/api/logs/${this.logId}`,this.$data.log).then((response)=> this.close())
.catch((error) => this.errors = error.response.data.errors)
}
}
}
</script>
Это журнал маршрутов / api.php
Route::patch('/logs/{id}','LogController@update');
Это функция обновления LogController.php
public function update($id, Request $request){
$log = Log::find($request->id);
$log->title = $request->logTitle;
$log->type = $request->logType;
$log->description = $request->logDescription;
$log->save();
}
Любая подсказка о том, как заставить это работать?