簡體   English   中英

從POST表單到Laravel中的控制器的未定義索引

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM