如何解决Nuxt Axios使用多个参数发布到Laravel API
我正在使用nuxt axios模块,试图将其与对象一起发布,但这不起作用
async postOrder(data) {
try {
await this.$axios.$post('orders',{
form: data
// other parameters..
})
.then(data => {
console.log(data)
});
} catch(err) {
console.log(err);}
在laravel控制器中
$this->validate($request,[
'first_name' => 'required','last_name' => 'required','address_1' => 'required','address_2' => 'required','city' => 'required','postcode' => 'required','country_id' => 'required|exists:countries,id',]);
$address = new Address;
$address->first_name = $request->first_name;
$address->last_name = $request->last_name;
$address->address_1 = $request->address_1;
$address->address_2 = $request->address_2;
$address->city = $request->city;
$address->postcode = $request->postcode;
$address->country_id = $request->country_id;
$address->save();
如果我像这样传递它就可以了,我猜这与我使用以下形式有关:数据?
await this.$axios.$post('orders',this.form)
解决方法
您要发布包装在form
对象中的数据,因此必须将验证规则更改为:
$this->validate($request,[
'form.first_name' => 'required','form.last_name' => 'required',etc...
您还应该检出控制台,以查看Nuxt应用程序中try / catch捕获的错误异常。
,可以这样验证和发布
$this->validate($request,[
'form.first_name' => 'required','form.address_1' => 'required','form.address_2' => 'required','form.city' => 'required','form.postcode' => 'required','form.country_id' => 'required|exists:countries,id',]);
$address = new Address;
$address->first_name = $request['form.first_name'];
$address->last_name = $request['form.last_name'];
$address->address_1 = $request['form.address_1'];
$address->address_2 = $request['form.address_2'];
$address->city = $request['form.city'];
$address->postcode = $request['form.postcode'];
$address->country_id = $request['form.country_id'];
$address->save();
但是也可以使用散布运算符... this.form,并且不需要像上面的控制器中那样访问它们
enter async postOrder () {
try {
await this.$axios.$post('orders',{
...this.form,shipping_id: this.$store.state.shipping.id,})
} catch (e) {
}
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。