未定义的偏移量:1 laravel

Posted

技术标签:

【中文标题】未定义的偏移量:1 laravel【英文标题】:Undefined offset: 1 laravel 【发布时间】:2021-07-12 04:21:39 【问题描述】:

我是 laravel 的新手 我有一个包含动态字段的表单,但是当我创建多个动态字段并单击提交时出现此错误:未定义偏移量:1 但它只适用于一个领域。 我看到谁使用过 isset 但我不知道如何在我的情况下使用它 谁能告诉我为什么在 php 中会出现这样的错误

控制器:

   public function store(Request $request)

   
    
    $data['invoice_no'] = $request->invoice_no;
        
    $data['last_invoice_no'] = $request->last_invoice_no;
    $data['devise'] = $request->devise;
    $data['customer_name'] = $request->customer_name;
    $data['customer_adress'] = $request->customer_adress;
    $data['invoice_no'] = $request->invoice_no;
    $data['invoice_date'] = $request->invoice_date;
  
    $data['company_adress'] = $request->company_adress;
    $data['company_name'] = $request->company_name;
    $data['company_phone'] = $request->company_phone;
    $data['poids_brut'] = $request->poids_brut;
    $data['poids_net'] = $request->poids_net;
    $data['livraison'] = $request->livraison;
    $data['incoterm'] = $request->incoterm;
    $data['payment_details'] = $request->payment_details;
    $data['sub_total'] = $request->sub_total;
    $data['shipping'] = $request->shipping;
    $data['total_due'] = $request->total_due;
    $data['created_by'] = (Auth::user()->name);

    $invoices = Invoices::create($data);

    $details_list = [];
    for ($i = 0; $i < count($request->categorie_id); $i++) 
       
                              
        $details_list[$i]['categorie_id'] = $request->categorie_id[$i];
        $details_list[$i]['product_id'] = $request->product_id[$i];
        $details_list[$i]['size_id'] = $request->size_id[$i];
        $details_list[$i]['quantity'] = $request->quantity[$i];
        $details_list[$i]['unit_price'] = $request->unit_price[$i];
        $details_list[$i]['total_price'] = $request->total_price[$i];
        $details_list[$i]['created_by'] = (Auth::user()->name);
   
               

    $details = $invoices->details()->createMany($details_list);

    if ($details) 
        return redirect('/invoices')->with([
            'message' => __('la facture est créé avec succès'),
            'alert-type' => 'success'
        ]);
     else 
        return redirect()->back()->with([
            'message' => __('la creation de facture a échoué'),
            'alert-type' => 'danger'
        ]);
    
   

   

发票模型:

class invoices extends Model

     protected $guarded=[];
    public function details()
    
        return $this->hasMany(invoice_products::class, 'invoice_id', 'id');
    

发票产品型号:

class invoice_products extends Model

    protected $guarded=[];

    public function invoice()
    
        return $this->belongsTo(Invoices::class, 'invoice_id', 'id');
    

【问题讨论】:

请分享一些表单代码 表示第一个索引的值是未定义的,它必须告诉错误中的行号以便调试目的 @Sara 请分享你的刀片文件的代码,以便我们了解$request-&gt;all()里面的内容@ 【参考方案1】:

原因:

出现这个错误:未定义的偏移量:1

你可以找到解释Here

您的情况:

for ($i = 0; $i categorie_id); $i++) $details_list[$i]['categorie_id'] = $request->categorie_id[$i];

也许(因为我们不知道您从form 传递了什么)您的$request-&gt;categorie_id 没有key/index 1。因此,在您的for 循环中,它会查找$request-&gt;categorie_id[1] 和失败的抛出错误Undefined offset: 1,表示数组$request-&gt;categorie_id[]没有key/index/offset 1。

建议:

您可以在 store 方法中使用 dd($request-&gt;all());dd($request-&gt;categorie_id); 查看里面的内容,以确保它包含索引为 1 的 $request-&gt;categorie_id[] 数组

【讨论】:

以上是关于未定义的偏移量:1 laravel的主要内容,如果未能解决你的问题,请参考以下文章

未定义的偏移量错误,但偏移量不是未定义的

未定义的偏移量:-1

简单函数()中的php未定义偏移量

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP

“注意:未定义的变量”、“注意:未定义的索引”和“注意:未定义的偏移量”使用 PHP