Я пытаюсь обновить поля таблицы настроек своего сайта, используя Laravel 5.8 и axios
, но в сообщении об обновлении вызова в Vue-файле я получаю эту ошибку в моей консоли Преобразование массива в строку
Я впервые обновляю таблицу с помощью vue js
Надеюсь, что вы можете помочь мне найти причину проблемы в моем коде
Настройки контроллера
public function updateSettings(Request $request,Setting $setting){
$siteSettings = $request->siteSettings;
foreach($siteSettings as $key => $req){
$siteSettingUpdate = $setting->where('namesetting' , $key)->get()[0];
$siteSettingUpdate->fill(['value' => $req])->save();
}
return response()->json($siteSettings);
//return response()->json(['Changed Had Saved Successfully'],200);
}
настройки vue
<template>
<div class="card card-info" style="margin-top: 15px">
<div class="card-header">
<h3 class="card-title text-center">Update Site Settings</h3>
</div>
<form class="form-horizontal" role="form" @submit.prevent="updateSettings">
<input type="hidden" name="_token" :value="csrf">
<div class="card-body">
<div class="form-group" v-for="(site,index) in siteSettings">
<label class="col-md-2 control-label">{{site.slug}} </label>
<div class="col-md-12">
<input type="text" v-if="site.type == 0" class="form-control" :name="site.namesetting" v-model="site.value">
<textarea v-if="site.type == 1" class="form-control" :name="site.namesetting" v-model="site.value">{{site.value}}</textarea>
<select v-if="site.type == 2" class="form-control" v-model="site.value" :name="site.namesetting">
<option :value="1">Open</option>
<option :value="0">Close</option>
</select>
</div>
</div>
</div>
<div class="card-footer">
<button class="btn btn-info">{{ loading ? 'Saving Please Wait ....' : 'Save Changes' }}</button>
</div>
</form>
</div>
<script>
export default {
data(){
return{
siteSettings:[],
loading : false,
csrf: document.querySelector('meta[name="csrf-token"]').getAttribute('content')
}
},
methods:{
getSettings(){
let uri = "/dashboard/getSettings";
axios.get(uri)
.then(response =>{
this.siteSettings = response.data;
})
},
updateSettings(){
let url ='/dashboard/updateSettings';
this.loading = true;
axios.post(url,{siteSettings:this.siteSettings}).then(response =>{
toastr.success();
}).catch(err => {
this.loading = false;
toastr.error();
})
}
},
mounted: function mounted() {
this.getSettings();
}
}