【问题标题】:how to save array data coming from view in laravel如何在laravel中保存来自视图的数组数据
【发布时间】:2019-05-12 04:20:19
【问题描述】:

这是用户提交表单时的数据:

POST Data

_token  
"JNDt8WC6kVbvrSdFTKSGnHsfzTuIsbthslf5Gqjs"

invoice_number  
"15"

dateofbill  
"2019-04-19"

customer_name   
"praveen kumar tiwari"

customer_mobile 
"8924001750"

sno 
array:3 [▼
  0 => "1"
  1 => "2"
  2 => "3"
]

item_name   
array:3 [▼
  0 => "jeans"
  1 => "shirt"
  2 => "lower"
]

qty 
array:3 [▼
  0 => "2"
  1 => "3"
  2 => "2"
]

price   
array:3 [▼
  0 => "20000"
  1 => "232"
  2 => "12"
]

gst 
array:3 [▼
  0 => "1200"
  1 => "22"
  2 => "12"
]

discount    
array:3 [▼
  0 => "100"
  1 => "23"
  2 => "12"
]

textarea    
""

我无法将此数据存储到表中。我正在尝试使用 for 循环,但出现错误“未定义的偏移量:3”。

控制器内的代码

for($i=0;$i<=count($request['sno']);$i++)
        {
            $invoice = new Invoice;
            $invoice->sendbill_id=$bill->id;
            $invoice->sno=$request['sno'][$i];
            $invoice->item_name=$request->item_name[$i];
            $invoice->qty=$request->qty[$i];
            $invoice->price=$request->price[$i];
            $invoice->gst=$request->gst[$i];
            $invoice->discount=$request->discount[$i];
            $invoice->save();
 }

我想将这 3 个值以数组形式 (sno,item_name,qty,price,gst,discount) 存储在 3 个不同的行中

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你应该尝试使用 laravel eloquent 来保存它。这是一些示例,您可以查看它。 Laravel : Many to many insertion

    【讨论】:

      【解决方案2】:

      你的问题确实是你的循环:for($i=0;$i&lt;=count($request['sno']);$i++)。 具体来说就是这里&lt;=:

      $i<=count()
        ^^
      


      看看你的数组:

      [
        0 => "1"
        1 => "2"
        2 => "3"
      ]
      

      您总共有 3 个对象。因此,count($request['sno']) 将返回 3,因为 count() 函数不会从 0 开始计数!
      但是,调用索引(例如$request['sno'][1])将返回第一个对象(0 =&gt; "1"),而是返回第二个对象(1 =&gt; "2")。我想你知道我要去哪里了。

      由于循环将一直持续到$i 等于3,循环将完成 4 次。最后一次($i == 3)您尝试从数组中取出不存在的第 4 项,因此弹出错误消息:Undefined offset: 3

      要解决这个问题,只需改变这个

      $i<=count()
        ^^
      

      &lt;。只有当$i 仍然小于3 时,才会执行循环。如果$i == 2 就是这种情况。不会弹出任何错误信息。

      我不想以任何方式攻击或伤害您,但在我看来,您对 PHP 还比较陌生。当然,这并不可惜,但我想知道像 Laravel 这样的大型框架是否适合您。首先是基础,然后是高级。
      但这只是我的一个小评论和提示。

      【讨论】:

        猜你喜欢
        • 2017-02-25
        • 1970-01-01
        • 2020-02-15
        • 2019-12-14
        • 2016-12-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-21
        • 2018-04-14
        相关资源
        最近更新 更多