[英]Undefined index from POST form to controller in Laravel
我有一個小問題讓我有些沮喪。
在我要發布的請求中,我具有以下字段,其中包含多行:
<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]]);
}
您的數據結構為:
$_POST['invoiceables']['SOME ID']['amount']
您將忽略'SOME ID'
部分,而是嘗試直接從發票中讀取金額。
您有多個發票, 每個發票都有一個金額。
您訪問的數組尺寸不正確。 在您的循環中,$ key成為ID,$ val是可發票數據的數組。 嘗試這個:
foreach($request->invoiceables as $key => $val){
$manifest = Carrier_Manifest::findOrFail($key);
$manifest->invoices()->save($invoice,['amount'=>$val['amount'],'notes'=>$val['notes']]);
}
您將其排列為:$ invoiceables [id] [amount]
但您可以像這樣訪問它:$ invoiceables [amount] [id]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.