laravel - 想要使用 laravel 更新 vuejs 中的数组值
问题描述
我有一个更新形式的数组值。当用户更改文本区域时,我需要更新特定值。看起来像这样
在我的 vuejs 中,数据对象看起来像这样。
data() {
return {
jobs: [],
details: {
basic_id: this.$route.params.id,
work: this.jobs
}
};
},
和我这样写的更新方法。
updateDetails() {
this.loading = true;
this.updateWorkedPlaces(this.details)
.then(() => {
console.log("success");
this.loading = false;
})
.catch(() => {
this.loading = false;
});
}
我将这些值传递给我的 vuex 操作方法。
async updateWorkedPlaces({ commit }, payload) {
let job = await Api().put("works/" + payload.basic_id, payload.work);
commit("UPDATE_WORK", job);
},
我将这些值传递给我的 laravel 后端更新函数。它看起来像这样。
public function update(Request $request, $id)
{
$work = $request->work;
$basic = $request->basic_id;
foreach ($request->work as $i => $id) {
$job = Job::findOrFail($basic);
$job->fill(['position' => $id['position'], 'address' => $id['address']])->save();
}
return response()->json(['message' => 'success']);
}
但是当我将这些值传递给这个函数时,它会显示这个错误。
Invalid argument supplied for foreach()
我该如何解决这个错误。任何人都可以帮助我吗?
解决方案
我想出了这个功能的问题
public function update(Request $request, $id)
{
$collection = $request->all();
for ($i = 0; $i < count($collection); $i++) {
Job::where('id', $collection[$i]['id'])
->update([
'position' => $collection[$i]['position'],
'address' => $collection[$i]['address']
]);
}
return response()->json(['collection' => $collection]);
}
推荐阅读
- mysql - 如何在mysql中选择具有多个列值等于一组特定值的记录?
- ruby-on-rails - 如何显示 current_user/invited_by 用户电子邮件显示设计邀请
- caching - infinispan - 节点之间的同步 - 状态转移 - 通知
- c# - 我如何添加 linq 查询 EnumerableRowCollection
到数据表? - browserstack - How to run ReactNative Based app on Browserstack-Automate/ App-live?
- python-3.x - 在 csv 中取回特征提取结果
- angular - 带有订阅/承诺混乱的角管道
- java - ArrayList: How to arraylist.set when you have multiple setters
- laravel-nova - Laravel Nova remove resources
- java - 使用 Android Volley 调用 Python 服务器。为什么会运行两次?