0

これは 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]));
     }
4

2 に答える 2

1

標準の PHP 関数を使用するために Laravel を使用しているのはなぜですか? その種の挿入コードはroutes.phpファイルにあるべきではなく、コントローラーまたはクロージャーにある必要があります。おそらくEloquentモデルを使用してアイテムを作成する必要があります。さらに、このInputクラスを使用して、GET または POST パラメーターによって提供されるデータを取得できます。

于 2013-07-01T07:34:28.750 に答える