laravel - 如何放入axios request 2 参数
问题描述
我尝试在 Laravel 上使用 Vue.Js(也包括 Vuex)创建一个简单的 CRUD 应用程序Http/Controllers/Admin/UserController.php 这是它的样子
public function update(Request $request, $id)
{
return $request->all();
}
在我的 Vue 组件中,我尝试发送 2 个参数 ID 和 DATA 但始终作为响应,我得到一个空数组这是我的 Vuex 文件位置:resources/js/components/admin/store/modules/user.js 这是代码Axios 请求:
async updateUserInfo(ctx, id, data)
{
return new Promise((resolve, reject) => {
axios({
url: '/users/' + id,
method: 'put',
data: data,
headers: {'Content-Type': 'multipart/form-data'},
})
.then((resp) => {
console.log(resp)
// ctx.commit('updateUser', resp.data.user)
resolve(resp)
})
.catch((error) => {
console.log(error)
// ctx.commit('updateErrors', error.response.data.errors);
reject(error)
})
})
},
这是我的 Vue 组件,我尝试调用此函数位置:resources/js/components/admin/views/components/user/EditComponent.vue 代码:
data()
{
return{
formData: {
address: '',
birthday: '',
email: '',
name: '',
password: '',
passwordConfirmation: '',
phone: '',
surname: '',
}
}
},
methods:{
...mapActions('user', ['editUserInfo', 'updateUserInfo']),
async onClickUpdateInfo(id)
{
this.updateUserInfo(id, this.formData);
}
},
表单中的我的提交按钮
<button @click.prevent="onClickUpdateInfo(id)" class="btn btn-success text-white">Обновить</button>[![enter image description here][1]][1]
解决方案
您应该将上下文和有效负载传递给 Vuex 操作。所以我猜你无法访问你的操作中的表单数据,对吧?
尝试这个:async updateUserInfo(ctx, { id, data })
然后在 vue 组件中:this.updateUserInfo({ id, data: this.formData });
推荐阅读
- reactjs - AsyncStoragePackage 被多次定义
- c++ - C++ 优先级队列 - 何时重新平衡堆?
- python - 使用路径 json 有条件地在特定 url 上模拟 httputil.get 方法
- java - 如何以特定方式打印两个 char 数组的元素?
- javascript - 如何仅对文本文件使用拖放和 multer 并将它们存储在 sqlite 数据库中
- python - 如何将字典的键与其值交换
- python - 如何检查用户是否在 discord.py 中具有角色?
- vba - Word VBA:不必要的属性标志会减慢宏的速度吗?
- python - 如何在 POST 请求发送的 Botfront/Rasa 中传递和提取元数据?
- laravel - Laravel 从相关表中按日期加时间搜索