我正在尝试创建一个购物车,我想发布多个具有相同名称的字段并处理它们
<?php foreach($datacart as $datacart) { ?>
<form method="post" action="/update-cart">
<input type="hidden" name="rowid" value="{{$datacart->rowid}}">
<input type="text" name="quantity" value="{{$datacart->quantity}}">
<?php }>
<input type="submit" value="update">
</form>
public function update_cart(request $request){
$rowId = $request->rowid;
$quantity = $request->quantity;
Cart::update($rowId, $quantity);
}
Run Code Online (Sandbox Code Playgroud)
首先使用 foreach 显示所有产品。那么每个项目都有一个隐藏的 rowid 和一个数量。
下面的代码显示了我的控制器。但使用此代码,它仅更新一项(最后一项)。但我想分别更新每个产品的数量
忘了说了,我使用https://github.com/Crinsane/LaravelShoppingcart作为我的购物车插件
首先让我们改进你的blade文件,你可以使用blade语法而不是PHP,所以这里:
<form method="post" action="/update-cart">
@csrf
@foreach($datacart as $datacart)
<input type="hidden" name="rowid[]" value="{{$datacart->rowid}}">
<input type="text" name="quantity[]" value="{{$datacart->quantity}}">
@endforeach
<input type="submit" value="update">
</form>
Run Code Online (Sandbox Code Playgroud)
因此请注意,输入元素的名称属性现在接受多个值作为数组。然后要在控制器中处理它,您可以执行以下操作:
public function update_cart(Request $request) {
foreach ( $request->rowid as $index => $id ) {
Cart::find($id)->update(['quantity' => $request->quantity[$index]]);
}
}
Run Code Online (Sandbox Code Playgroud)
- 编辑
刚刚测试了update
对模型的调用,因为静态方法不起作用。
归档时间: |
|
查看次数: |
5886 次 |
最近记录: |