【发布时间】:2021-06-03 15:29:59
【问题描述】:
我有一个问题,我尝试了很多方法,但都没有解决,所以我需要你的帮助
这是我的 Vue Temp:
<form @submit.prevent="createCat" enctype="multipart/form-data" method="POST">
<div class="mt-1 relative rounded-md shadow-sm mb-3">
<input id="cat_name" type="text" v-model="categories.cat_name" />
</div>
<div class="mt-1 relative rounded-md shadow-sm mb-3 w-50">
<input name="img_url" id="img_url" accept="image/*" type="file">
</div>
<button type="submit">Add</button>
</form>
data(){
return{
categories:{
cat_name: '',
img_url: null,
},
}
},
methods:{
createCat(){
let data = new FormData();
data.append('cat_name', this.categories.cat_name);
data.append('url', this.categories.img_url);
this.$inertia.post('/categories', this.categories)
.then(()=>{
//
})
},
}
在 Controller 我尝试调试请求,但它总是返回 NULL
public function store(Request $request)
{
dump($request->file('img_url'));
dump($request->cat_name);
dump($request->all());
}
结果
null
"name"
array:2 [▼
"cat_name" => "name"
"img_url" => null
]
【问题讨论】:
-
尝试一次 this.$inertia.post('/categories')
-
但是没有数据会这样发布:this.$inertia.post('/categories')
-
查看官方图书馆的链接一次。如果仍然无法正常工作,那么有人会提供帮助
-
我终于解决了:我只是将它添加到 INPUT 中:@input="categories.img_url = $event.target.files[0]"