我有3张桌子,
pedido(订单)表,产品表和pedido_product表 我在pedido_product表中有一个额外的字段cantidad,我正在为每个订购的产品更新
我可以在更新方法中使用硬编码值更新额外字段,我的cantidad get已正确更新
$productId = 2;
$cantidad = 1.1;
Pedido::find($pedidoId)->products()->updateExistingPivot($productId, [
"cantidad" => $cantidad
]);
现在我有一个表单,我尝试在同一个请求上更新每个产品的cantidad
{!! Form::open(array('action' =>
['PedidosController@update', $pedido->id],'method' => 'PATCH')) !!}
@foreach ($pedido->products as $product)
{!! Form::text($product->pivot->product_id,
$product->pivot->cantidad, ['class' => 'form-control' ,'id' => 'cantidad']) !!}
我得到了我想要的东西,一个带有一个密钥的数组,该密钥来自product_id和要更新的cantidad的值。但是现在如何将updateId和cantidad在update方法中绑定到我从表单中接收的数组并在我的更新方法中循环它们?
$pedido = $request->input();
$productId = ? ;
$cantidad = ? ;
Pedido::find($pedidoId)->products()->updateExistingPivot($productId, [
"cantidad" => $cantidad
由于
修改
我没有找到ansert,但是我改变了方法,而不是同时更新所有方法,我通过在循环后打开表单并通过提供product_id这个的隐藏表单逐个更新它们诀窍
@foreach ($pedido->products as $product)
{!! Form::open(array('action' => ['PedidosController@update', $pedido->id],'method' => 'PATCH')) !!}
{!! Form::text('cantidad', $product->pivot->cantidad, ['class' => 'form-control']) !!}
{!! Form::hidden('id', $product->pivot->product_id, ['class' => 'form-control']) !!}