laravel - 在 laravel 中提交后获取一个 vue 表单以转到下一页
问题描述
我同时使用 laravel 和 vue,我试图让我的 vue 表单在我提交后转到另一个页面,但问题是一旦提交它就会刷新并返回到它所在的页面而不是其他页面。
当我在开发工具中检查我的网络选项卡时,它发布到了正确的页面,但它没有显示在浏览器中
这是我的vue
<template>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Example Component</div>
<div class="card-body">
I'm an Supplier Code Selection component.
<br>
<form @submit.prevent="submit">
<label for="parent-product">Parent Product</label>
<select name="parent-product" id="parent-product" class="form-control" v-model="selected_parent">
<option>Please select your code</option>
<option v-for="product in products" :value="product.id">
{{ product.supplier_code }}
</option>
<option v-for="child in children" :value="child.id">
{{ child.supplier_code }}
</option>
</select>
<input type="submit" class="btn btn-primary" value="Submit">
</form>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import axios from 'axios'
export default {
props: [
'products',
'children',
'selected_parent'
],
mounted() {
console.log('Component mounted.')
},
methods: {
submit(){
var formData = new FormData();
console.log('this is the select box - '+this.selected_parent);
formData.append('parent-product', this.selected_parent);
return axios.post('/add-to-cart/'+this.selected_parent, formData);
},
},
}
</script>
我的路线
Route::any('/add-to-cart/{id}', 'PublicController@getAddToCart')->name('product.addToCart');
我的控制器功能
public function getAddToCart(Request $request, $id)
{
$menus_child = Menu::where('menu_id', 0)->with('menusP')->get();
$contacts = Contact::all();
$product = Product::find($id);
$supplier_code = $request->supplier_code;
$oldCart = Session::has('cart') ? Session::get('cart') : null;
$cart = new Cart($oldCart);
$cart->add($product, $product->id, $supplier_code);
$request->session()->put('cart', $cart);
return view('public.shopping-cart', ['products' => $cart->items, 'totalPrice' => $cart->totalPrice, 'menus_child' => $menus_child, 'contacts' => $contacts, 'supplier_code' => $supplier_code]);
}
解决方案
我发现了我的问题。我忘了换
return view('public.shopping-cart', compact('supplier_code'));
至
return ['redirect' => route('product.shoppingCart')];
在我的 laravel 控制器功能中
推荐阅读
- azure - Dot.Net Core 中 Azure blob 容器中的软删除 blob 文件
- javascript - RangeError [EMBED_FIELD_VALUE]:MessageEmbed 字段值可能不为空
- generics - 如何定义包含可以在运行时定义实现的通用特征的注册表
- docker - 将 TCP 请求从主机转发到特定端口上的容器
- python - 如何在数值上优化协程的结果
- python - 如何暂停或睡眠或阻止声音设备的原始输入流
- reactjs - 模拟变化似乎没有很好地测试
- linux - bash -c 在同一进程中运行脚本
- excel - 在所有匹配的单元格之后将文本插入到 Excel 单元格中
- go - Goland中如何根据接口的动态类型设置条件断点