簡體   English   中英

laravel 4表單提交多個輸入

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

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