我有一个小问题让我有些沮丧。
在我要发布的请求中,我具有以下字段,其中包含多行:
<input type="text" name="invoiceables[{{$id}}][id]">
<input type="text" name="invoiceables[{{$id}}][amount]">
<input type="text" name="invoiceables[{{$id}}][notes]">
如果我提起异常,这就是它作为示例返回的样子:
invoiceables (array (2)):
-- 3127 (array(3):
---"id" => "3127"
---"amount" => "15.00"
---"notes" => "test1"
-- 3082 (array(3):
---"id" => "3082"
---"amount" => "25.00"
---"notes" => "test2"
但是当我在控制器中使用以下命令时,出现“未定义索引:金额”错误:
foreach($request->invoiceables['amount'] as $key => $val){
$manifest = Carrier_Manifest::findOrFail($key);
$manifest->invoices()->save($invoice,['amount'=>$request->invoiceables['amount'][$key],'notes'=>$request->invoiceables['notes'][$key]]);
}
答案 0 :(得分:2)
您的数据结构是:
$_POST['invoiceables']['SOME ID']['amount']
您将忽略'SOME ID'
部分,并尝试直接从发票中读取金额。
您有多个发票,其中每个有金额。
答案 1 :(得分:2)
您错误地访问了阵列尺寸。在您的循环中,$ key成为ID,$ val是可发票数据的数组。试试这个:
foreach($request->invoiceables as $key => $val){
$manifest = Carrier_Manifest::findOrFail($key);
$manifest->invoices()->save($invoice,['amount'=>$val['amount'],'notes'=>$val['notes']]);
}
答案 2 :(得分:1)
您排列其: $ invoiceables [id] [amount]
,但是您可以像这样访问它: $ invoiceables [amount] [id]