Javascript 在db中插入数据时数组到字符串转换错误
我正在使用Vue multiselect。我想将所选选项的id保存在db中,但不幸的是,我得到了数组到字符串转换的错误。我把站点id和管理员都放在了fillebles中。我在控制器端得到了所选选项的数组,但我认为问题出在insert方法中,它抛出了错误。希望你能理解我的问题 Html:Javascript 在db中插入数据时数组到字符串转换错误,javascript,laravel,vue.js,Javascript,Laravel,Vue.js,我正在使用Vue multiselect。我想将所选选项的id保存在db中,但不幸的是,我得到了数组到字符串转换的错误。我把站点id和管理员都放在了fillebles中。我在控制器端得到了所选选项的数组,但我认为问题出在insert方法中,它抛出了错误。希望你能理解我的问题 Html: <form @submit.prevent="addAllocateSites"> <di
<form @submit.prevent="addAllocateSites">
<div class="row">
<div class="col-md-4">
<div class="form-group">
<label class="typo__label">Select Site</label>
<multiselect v-model="form.selected_sites" :options="options"
:multiple="true"
:close-on-select="false"
:clear-on-select="false" :preserve-search="true"
placeholder="Pick Site"
name = "selected_sites"
label="asset_name" track-by="asset_name"
:class="{ 'is-invalid': form.errors.has('selected_sites') }">
<template slot="selection" slot-scope="{ values, search, isOpen }"><span
class="multiselect__single" v-if="values.length && !isOpen">{{ values.length }} Sites selected</span>
</template>
</multiselect>
<pre class="language-json"><code>{{form.selected_sites}}</code></pre>
</div>
<has-error :form="form" field="selected_sites"></has-error>
<button type="submit" class="btn btn-primary">Save</button>
</div>
</div>
<br>
</form>
拯救
脚本:
<script>
import Multiselect from 'vue-multiselect';
import Form from 'vform';
export default {
components: {
Multiselect
},
data() {
return {
form: new Form({
selected_sites: [],
}),
options: []
}
},
methods: {
getSites() {
axios.get('api/sites').then(data => {
this.options = data.data;
console.log(data.data)
}, function (data) {
console.log(data)
});
},
addAllocateSites(){
this.form.post('api/allocate_sites').then(() => {
toast.fire({
type: 'success',
title: 'Sites Allocated Successfully'
});
});
}
},
mounted() {
this.getSites();
console.log('Component mounted.')
}
}
</script>
控制器:
public function store(Request $request)
{
$siteIds = $request->input('selected_sites');
// dd($siteIds);
$validation = Validator::make($request->all(), [
'selected_sites' => 'required|array',
]);
if ($validation->fails()) {
return ['Fields required'];
} else {
for ($i = 1; $i < count($siteIds); $i++) {
$sites[] = [
"site_id" => $siteIds[$i],
"administrator_id" => Auth::user()->id,
];
}
$insertData = AllocateSites::insert($sites);
if ($insertData) {
return ['Sites Allocated'];
} else {
return ['Failed to add data'];
}
}
}
我找到了解决办法
for ($i = 0; $i < count($siteIds); $i++) {
$sites[] = [
"site_id" => $siteIds[$i]['id'],
"administrator_id" => Auth::user()->id,
];
}
您在哪一行得到错误的可能重复。@N69S我不知道这一行,但我在for循环或after for循环中插入数据时会思考。@DaniyalMughees检查storage/logs/foldererror中的错误行在这一行$insertData=AllocateSites::insert$sites;