'Laravel 8 throws undefined offset how to handle it?

here I have form to retrieve data from database using date and time issue is iam able to retrive data succesfuly most times but some time i get this error

enter image description here

here is the code

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use App\PricingDetail;
use App\AccessoryCharge;
use App\Discount;
use App\MonthlyCourtCharge;

class PricingDetailController extends Controller
{
    public function index(Request $request){

        $op_id=$request->session()->get('op_id');
        $inf_id=$request->session()->get('inf_id');

        if(is_null($inf_id)){

            return redirect('/infrastructure_details');

        }else if(is_null($op_id)){

            return redirect('/operational_details');

        }else{

            $timings=DB::table('operational_details')
                    ->select('opening_time','closing_time')
                    ->where('infrastructure_details_id',$inf_id)
                    ->first();

            $pricing_details=[];
            $pricing_details=DB::table('pricing_details')
                        ->where('infrastructure_details_id','=',$inf_id)
                        ->get();

            $accessory_charges=[];
            $accessory_charges=DB::table('accessory_charges')
                        ->where('infrastructure_details_id','=',$inf_id)
                        ->get();

            $discounts=[];
            $discounts=DB::table('discounts')
                        ->where('infrastructure_details_id','=',$inf_id)
                        ->get();

            $monthly_charges=[];
            $monthly_charges=DB::table('monthly_court_charges')
                        ->where('infrastructure_details_id','=',$inf_id)
                        ->get();

            if(($pricing_details->count())>0){
                $request->session()->put('price_id',$pricing_details[0]->id);
            }
       

            return view('pricing_details',['inf_id'=>$inf_id,'op_id'=>$op_id,'timings'=>$timings,'pricing_details'=>$pricing_details,'acc_charges'=>$accessory_charges,'discounts'=>$discounts,'monthly_charges'=>$monthly_charges]);
        }

        
        //return view('pricing_details',['timings'=>$timings]);
        //return view('home',['court_types'=>$court_types]);
    }
    public function create(Request $request){

        $diff=$request->input('diff');
        $no_accessories=$request->input('no_accessories');
        $no_discounts=$request->input('no_discounts');
        $no_monthly_charges=$request->input('no_monthly_charges');

        for($i=0;$i<$diff;$i++){
            $pricing_details=new PricingDetail;
            $pricing_details->timings=$request->input('time'.$i);
            $pricing_details->price=$request->input('price'.$i);
            $pricing_details->discount=$request->input('discount'.$i);
            $pricing_details->discounted_price=$request->input('discounted_price'.$i);
            $pricing_details->disc_from_date=$request->input('disc_from_date'.$i);
            $pricing_details->disc_to_date=$request->input('disc_to_date'.$i);
            $pricing_details->infrastructure_details_id=$request->input('inf_id');
            $pricing_details->operational_details_id=$request->input('op_id');
            $pricing_details->day_types_id=$request->input('day_type'.$i);
            $pricing_details->save();
        }


        for($i=1;$i<=$no_accessories;$i++){
            $accessory_charge=new AccessoryCharge;
            $accessory_charge->item=ucfirst($request->input('item'.$i));
            $accessory_charge->brand=ucfirst($request->input('brand'.$i));
            $accessory_charge->price=$request->input('acc_price'.$i);
            $accessory_charge->quantity=$request->input('quantity'.$i);
            $accessory_charge->return_type=$request->input('return_type'.$i);
            $accessory_charge->infrastructure_details_id=$request->input('inf_id');
            $accessory_charge->operational_details_id=$request->input('op_id');
            $accessory_charge->save();
        }
       
        for($i=1;$i<=$no_monthly_charges;$i++){

            $monthly_charge=new MonthlyCourtCharge;
            $monthly_charge->infrastructure_details_id=$request->input('inf_id');

            $no_days=0;
            $scheme_type=$request->input('scheme_type'.$i);
            if($scheme_type=="scheme1"){
                $no_days=22;
            }else{
                $no_days=31;
            }

            $monthly_charge->scheme_type=$scheme_type;
            $monthly_charge->no_days=$no_days;
            $monthly_charge->hour_type=$request->input('hour_type'.$i);
            $monthly_charge->from_time=date('H:i',strtotime($request->input('from_time'.$i)));
            $monthly_charge->to_time=date('H:i',strtotime($request->input('to_time'.$i)));
            $monthly_charge->price=$request->input('price'.$i);
            $monthly_charge->save();
        }


        $id=$pricing_details->id;
        $request->session()->put('price_id', $id);
        return redirect('/facility_details');
    }

    public function update(Request $request){
        $diff=$request->input('diff');
        $no_accessories=$request->input('no_accessories');
        //$no_discounts=$request->input('no_discounts');
        $no_monthly_charges=$request->input('no_monthly_charges');

        for($i=0;$i<$diff;$i++){

            $pr_id=$request->input('pricing_id'.$i);
            $pricing_details=PricingDetail::find($pr_id);
            $pricing_details->timings=$request->input('time'.$i);
            $pricing_details->price=$request->input('price'.$i);
            $pricing_details->discount=$request->input('discount'.$i);
            $pricing_details->discounted_price=$request->input('discounted_price'.$i);
            $pricing_details->disc_from_date=$request->input('disc_from_date'.$i);
            $pricing_details->disc_to_date=$request->input('disc_to_date'.$i);
            $pricing_details->infrastructure_details_id=$request->input('inf_id');
            $pricing_details->operational_details_id=$request->input('op_id');
            $pricing_details->day_types_id=$request->input('day_type'.$i);
            $pricing_details->save();
        }

        for($i=1;$i<=$no_accessories;$i++){

            $acc_id=$request->input('acc_id'.$i);
            $accessory_charge=AccessoryCharge::find($acc_id);
            $accessory_charge->item=ucfirst($request->input('item'.$i));
            $accessory_charge->brand=ucfirst($request->input('brand'.$i));
            $accessory_charge->price=$request->input('acc_price'.$i);
            $accessory_charge->quantity=$request->input('quantity'.$i);
            $accessory_charge->return_type=$request->input('return_type'.$i);
            $accessory_charge->infrastructure_details_id=$request->input('inf_id');
            $accessory_charge->operational_details_id=$request->input('op_id');
            $accessory_charge->save();
        }
       
        for($i=1;$i<=$no_monthly_charges;$i++){

            $monthly_id=$request->input('monthly_id'.$i);
            $monthly_charge=MonthlyCourtCharge::find($monthly_id);
            //$monthly_charge->infrastructure_details_id=$request->input('inf_id');
            $no_days=0;
            $scheme_type=$request->input('scheme_type'.$i);
            if($scheme_type=="scheme1"){
                $no_days=22;
            }else{
                $no_days=31;
            }

            $monthly_charge->scheme_type=$scheme_type;
            $monthly_charge->no_days=$no_days;
            $monthly_charge->hour_type=$request->input('hour_type'.$i);
            $monthly_charge->from_time=date('H:i',strtotime($request->input('from_time'.$i)));
            $monthly_charge->to_time=date('H:i',strtotime($request->input('to_time'.$i)));
            $monthly_charge->price=$request->input('price'.$i);
            $monthly_charge->save();
        }
        
        $id=$pricing_details->id;
        $request->session()->put('price_id', $id);
        return redirect('/facility_details');
    }
}

here is the layout code

<div class="dynamic_row2">
                            <div class="row">
                                <div class="col-md-12 bg-info text-white">
                                    <h4 calss="h4-responsive">4. Monthly Charges</h4>
                                </div>
                            </div>
                            <div class="row">
                                <div class="col-md-2">
                                    <h4 class="h4-responsive">Scheme Type</h4>
                                </div>
                                <div class="col-md-2">
                                    <h4 class="h4-responsive">Hour Type</h4>
                                </div>
                                <div class="col-md-3">
                                    <h4 class="h4-responsive">From Time</h4>
                                </div>
                                <div class="col-md-3">
                                    <h4 class="h4-responsive">To Time</h4>
                                </div>
                                <div class="col-md-2">
                                    <h4 class="h4-responsive">Price / hour</h4>
                                </div>
                            </div>
                            
                            @php 
                                $i=1;
                            @endphp
                            @foreach($monthly_charges as $monthly)

                            {{Form::hidden('monthly_id'.$i,$monthly->id)}}
                            <div class="row" id="discount_row1">
                                <div class="col-md-2">
                                    <div class="form-group">

                                        <select name="scheme_type<?php echo $i; ?>" class="form-control" required>
                                            <option value="<?php echo $monthly->scheme_type; ?>" selected><?php echo $monthly->scheme_type; ?></option>
                                            <option value="" disabled>Select Scheme</option>
                                            <option value="scheme1">Scheme1 - 22 days</option>
                                            <option value="scheme2">Scheme2 - 30/31 days</option>
                                        </select>
                                        
                                    </div>
                                </div>
                                <div class="col-md-2">
                                    <div class="form-group">

                                        <select name="hour_type<?php echo $i; ?>" class="form-control" required>
                                            <option value="<?php echo $monthly->hour_type; ?>" selected><?php echo $monthly->hour_type; ?></option>
                                            <option value=""  disabled>Select hour type</option>
                                            <option value="Peak hour">Peak hour</option>
                                            <option value="NonPeak hour">NonPeak hour</option>
                                        </select>

                                    </div>
                                </div>
                                <div class="col-md-3">
                                    <div class="form-group">
                                        {{ Form::time('from_time'.$i,$monthly->from_time,['class'=>'form-control','placeholder'=>'From Time','required']) }}
                                    </div>
                                </div>
                                <div class="col-md-3">
                                    <div class="form-group">
                                        {{ Form::time('to_time'.$i,$monthly->to_time,['class'=>'form-control','placeholder'=>'From Time','required']) }}
                                    </div>
                                </div>
                                <div class="col-md-2">
                                    <div class="form-group">
                                        {{ Form::number('price'.$i++,$monthly->price,['class'=>'form-control','placeholder'=>'From Time','required']) }}
                                    </div>
                                </div>
                            </div>

                            @endforeach
                            
                        </div>



                       {{Form::submit('Update',['class'=>'btn btn-primary'])}}
                    {!! Form::close() !!}
                @endif

i have checked database datatypes since i works most of the time no problem there. i don't what iam missing



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source