更新额外字段数据透视表laravel

时间:2015-07-11 02:07:25

标签: laravel many-to-many pivot-table

我有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']) !!}

0 个答案:

没有答案