这是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]));
}
答案 0 :(得分:1)
为什么使用Laravel使用标准PHP函数?这种插入代码不应该在routes.php
文件中,它应该在控制器或闭包中。您应该使用Eloquent
模型来创建项目。此外,您可以使用Input
类来检索由GET或POST参数提供的数据。
答案 1 :(得分:0)
我建议您使用Eloquent模型以这种方式插入ITEM数据,并循环使用结果集中的所有项目: -
使用输入类以laravel方式获取POST和GET变量
Input::get('invoice_id')
method get()
- 返回POST和GET变量
method e()
- 将HTML字符转换为实体,并在laravel / helper.php中定义
使用Eloquent以raravel方式在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);