Я полностью новичок в Laravel и пытаюсь создать простую форму счета-фактуры (до сих пор набросал только несколько полей).Заголовок счета-фактуры сохраняется в БД правильно, первый InvoiceItem также.Однако, если я добавляю более одной строки в таблицу с элементами Invoice, в БД сохраняется только первое значение.
Это строка InvoiceItem:
<tr>
<td>
<select class="form-control name" name="productname[]">
<option value="0" selected="true" disabled="true">Select Product</option>
@foreach($product_lists as $key=>$p)
<option value="{!!$key!!}">{!!$p!!}</option>
@endforeach
</td>
<td><input type="text" class="form-control form-control-line qty" name="qty[]"></td>
<td><input type="text" class="form-control form-control-line price" name="price[]"></td>
<td><input type="text" class="form-control form-control-line total" name="total[]"></td>
<td><a href="#" class="remove">-<i class="glyphicon glyphicon-remove"></i></a></td>
</tr>
Это jqueryдобавить еще одну строку InvoiceItem:
function addRow(){
var tr='<tr>'+
'<td>'+
'<select class="form-control name" name="productname[]">'+
'<option value="0" selected="true" disabled="true">Select Product</option>'+
'@foreach($product_lists as $key=>$p)'+
'<option value="{!!$key!!}">{!!$p!!}</option>'+
'@endforeach'+
'</td>'+
'<td><input type="text" class="form-control form-control-line qty" name="qty[]"></td>'+
'<td><input type="text" class="form-control form-control-line price" name="price[]"></td>'+
'<td><input type="text" class="form-control form-control-line total" name="total[]"></td>'+
'<td><a href="#" class="remove">-<i class="glyphicon glyphicon-remove"></i></a></td>'+
'</tr>';
$('tbody').append(tr);
};
Это мой контроллер:
public function store(Request $request)
{
$salesinvoice = $this->validate(request(), [
'invoice_no' => 'required'
]);
SalesInvoice::create($salesinvoice);
foreach ($request->productname as $key=>$v) {
$data=array(
'product_id'=>$request->$v,
'qty'=>$request->qty[$key],
'price'=>$request->price[$key],
'total'=>$request->total[$key]
);
SalesInvoiceItem::insert($data);
};
Буду признателен за любые указания / подсказки, как ее решить.
Редактировать: Этозапрос:
array:6 [▼
"_token" => "xw1dkpYSjUNql1mHJLrreieRgcPk5nafpuvnawu0"
"invoice_no" => "1000"
"productname" => array:1 [▼
0 => "1"
]
"qty" => array:1 [▼
0 => "5"
]
"price" => array:1 [▼
0 => "25"
]
"total" => array:1 [▼
0 => "125"
]
]
Похоже, проблема в самой форме, а не в контроллере, верно?