我正在尝试存储数组数据(保存多行),但是单行存储在数据库中。
这是我的表格,
d = bag_of_words.set_index('word')['probability'].to_dict()
DF['text'] = [' '.join(str(d.get(y, y)) for y in x.split()) for x in DF['text']]
print (DF)
text
0 -2.862037 -3.500018 -3.549299
1 -3.696334 -3.7625620000000004
这是我的商店功能
{!! Form::open(['route' => 'warehouse1.store']) !!}
@foreach($order->orderItems as $orderItem)
<input type="number" name="stock_in_qty[]" id="stock_in_qty_{{$orderItem->id}}" class="form-control stock_in_qty" min="1" value="{{$orderItem->quantity}}" data-max="{{$orderItem->quantity}}" onkeyup="check(this);"/>
<script type="text/javascript">
var $orderItem_id = {{$orderItem->id}};
$('#stock_in_qty_'+$orderItem_id).on('mouseup keyup', function () {
$(this).val(Math.min({{$orderItem->quantity}}, Math.max(1, $(this).val())));
});
</script>
{{ Form::date('delivery_date[]',today(), ['class' => 'form-control date', 'style' => 'width:200px;','required']) }}
{!! Form::text('delivery_note[]', null, ['class'=>'form-control']) !!}
{!! Form::hidden('order_id[]', $order->id) !!}
{!! Form::hidden('order_item_id[]', $orderItem->id ) !!}
{!! Form::hidden('company_id[]', $order->company->id) !!}
{!! Form::hidden('stock_out_qty[]',null) !!}
{!! Form::hidden('transfer_to[]', null) !!}
{!! Form::hidden('user_id[]',auth()->user()->id ) !!}
@endforeach
{!! Form::submit('Add to stocks', [ 'class'=>'btn btn-info']) !!}
{!! Form::close() !!}
dd($ acceptItem);结果
dd($ input)个结果
您认为这可能是什么原因?预先谢谢你!
答案 0 :(得分:1)
您需要将控制器方法更改为此
public function store(Request $request)
{
$input = $request->all();
$items = [];
for($i=0; $i < count($input['stock_in_qty']); $i++) {
if(empty($input['stock_in_qty'][$i]) || !is_numeric($input['stock_in_qty'][$i])) continue;
$acceptItem = [
'order_id' => $input['order_id'][$i],
'order_item_id' => $input['order_item_id'][$i],
'delivery_date' => $input['delivery_date'][$i],
'company_id' => $input['company_id'][$i],
'stock_in_qty' => intval($input['stock_in_qty'][$i]),
'stock_out_qty' => $input['stock_out_qty'][$i],
'transfer_to' => $input['transfer_to'][$i],
'delivery_note' => $input['delivery_note'][$i],
'user_id' => $input['user_id'][$i]
];
array_push($items, Warehouse1stocks::create($acceptItem));
}
dd($items);
return redirect()->route('orders.index');
}
由于您的代码在创建第一个acceptItem
之后清晰地显示在下面,因此您将被重定向到route('orders.index')
而不创建其他acceptItems
for($i=0; $i<= count($input['stock_in_qty']); $i++) {
if(empty($input['stock_in_qty'][$i]) || !is_numeric($input['stock_in_qty'][$i])) continue;
$acceptItem = [
'order_id' => $input['order_id'][$i],
'order_item_id' => $input['order_item_id'][$i],
'delivery_date' => $input['delivery_date'][$i],
'company_id' => $input['company_id'][$i],
'stock_in_qty' => intval($input['stock_in_qty'][$i]),
'stock_out_qty' => $input['stock_out_qty'][$i],
'transfer_to' => $input['transfer_to'][$i],
'delivery_note' => $input['delivery_note'][$i],
'user_id' => $input['user_id'][$i]
];
Warehouse1stocks::create($acceptItem);
return redirect()->route('orders.index');
}
因此,您需要将return
语句移出for循环。