'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
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 |
|---|

