[英]laravel 4 form submit with multiple input
這是var_dump($ _ POST):
array(18) { ["_token"]=> string(40) "Qg0krYddkI2cnPQBy5T3yGJdQqRBbb9q173MXzoa" ["from_name"]=> string(2) "4r" ["from_address"]=> string(1) "4" ["invoice_id"]=> string(1) "4" ["invoice_date"]=> string(0) "" ["due_date"]=> string(0) "" ["to_name"]=> string(1) "4" ["to_address"]=> string(1) "4" ["item"]=> array(1) { [0]=> string(5) "Hours" } ["desc"]=> array(1) { [0]=> string(2) "44" } ["unitAmt"]=> array(1) { [0]=> string(1) "4" } ["qty"]=> array(1) { [0]=> string(1) "4" } ["amount"]=> array(1) { [0]=> string(2) "16" } ["invoiceNotes"]=> string(2) "44" ["subTotal"]=> string(2) "16" ["total"]=> string(2) "16" ["amtPaid"]=> string(1) "0" ["balDue"]=> string(2) "16" }
如您所見,變量unitAmt已發布,但使用它時出現此錯誤:
ErrorException
Undefined index: unitAmt
open: /var/www/lk/htdocs/app/routes.php
//var_dump($rows);
//var_dump($description);
for($i=0; $i<count($rows);$i++){
DB::table('item_description')->insert(
array('invoice_id' => $returnID, 'item' => $rows[$i], 'description' => $description[$i],
'unit_price' => $_POST['unitAmt'][$i], 'quantity' => $_POST['qty'][$i], 'amount'=>$_POST['amount'][$i]));
}
這對於發布的數量和金額都很好。 在轉儲變量的其他地方也發生了同樣的事情,我可以看到數據在那里,但是當我使用它時,它顯示了未定義的索引。
編輯:這是我在route.php中的代碼
var_dump($_POST);
$rows = $_POST['item'];
$description = $_POST['desc'];
for($i=0; $i<count($rows);$i++){
DB::table('item_description')->insert(
array('invoice_id' => $returnID, 'item' => $rows[$i], 'description' => $description[$i],
'unit_price' => $_POST['unitAmt'][$i], 'quantity' => $_POST['qty'][$i], 'amount'=>$_POST['amount'][$i]));
}
為什么要使用Laravel來使用標准PHP函數? 那種插入代碼不應該在routes.php
文件中,而應該在控制器或閉包中。 您可能應該使用Eloquent
模型來創建項目。 此外,您可以使用Input
類檢索由GET或POST參數提供的數據。
我建議您使用Eloquent模型以這種方式插入ITEM數據,並循環遍歷結果集中的所有項目:-
使用輸入類以Laravel方式獲取POST和GET變量
Input::get('invoice_id')
method get()
-返回POST和GET vars method e()
-將HTML字符轉換為實體,並在laravel / helper.php中定義
使用Eloquent以類似laravel的方式在db中添加新行:
item_description::create($arr);
一個簡單的示例,它以更簡潔的Laravel方式向item_description表添加項目:-
$arr = array(
'invoice_id' => e(Input::get('invoice_id')),
'item' => e(Input::get('item')),
'description' => e(Input::get('desc')),
'unit_price' => e(Input::get('unitAmt')),
'quantity' => e(Input::get('qty')),
'amount' => e(Input::get('amount')),
);
// Insert Data in table
$item_description= item_description::create($arr);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.