微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试在 Laravel 中访问 null 类型值的数组偏移量,同时在数据库中添加多个值

如何解决尝试在 Laravel 中访问 null 类型值的数组偏移量,同时在数据库中添加多个值

我有一个表格 Vehicle 我想保存多个值。

我有列:id、车辆号、类型、品牌、头盔、安全带、清洁工、type_taxi

在此列中(make、helm、seatbelt、cleaner、type_taxi)设置为可空

例如 1 如果品牌选择为仅汽车安全带列将被填充否则将为空

示例 2 如果选择 make 为摩托车,则只填充头盔栏,否则为空

并且可以有很多车辆,对于每辆车都会有这些问题

控制器

 public function insert( Request $request)
    {
        
        
        //accident
            $accident = new Accident();
            $accident->branch_id = $request->input('branch');
        $accident->roadname = $request->input('roadname');
        $accident->date = $request->input('dtb_yr');
        $accident->time = $request->input('appt');      
        $accident->no_of_vehicle = $request->input('noofvehicle');
        $accident->injured = $request->input('injured');
        $accident->death = $request->input('death');
        $accident->hit_and_run = $request->input('hitandrun');
        $accident->construction = $request->input('construction');
        $accident->casereg = $request->input('caseregister');
        $accident->road_maintain = $request->input('road_maintain');
        $accident->IPC_MVAct_Sections = $request->input('ipmvc');
        $accident->save();

       

        
        //vehicle
        foreach ($request->type as $key => $type)
           
        {
          $vehicle = new Vehicle();
          $vehicle->type = $type;
          $vehicle->vehicleno = $request->vehicleno;
          $vehicle->make = $request->make;
          $vehicle->helmet = $request->helmet;
          $vehicle->seatbelt = $request->seatbelt;
          $vehicle->cleaner = $request->cleaner;
          $vehicle->type_taxi = $request->type_taxi;
          $vehicle->accidents_id=$accident->id;
          $vehicle->save();
      
        }

dd($request->all());

array:25 [▼
  "_token" => "tWqfGWJVtRGmN7MBuHfARjLgliIHrDMcFejli4th"
  "branch" => "1"
  "roadname" => "Sion Panvel Special State Highway Vashi Creek Bridge to Kalamboli Junction"
  "dtb_yr" => "2021-06-15"
  "appt" => "14:26"
  "latitude" => "19.120127999999998"
  "longitude" => "72.8891392"
  "injured" => "2"
  "death" => "2"
  "noofvehicle" => "2"
  "vehicleno" => "MH054BBC4"
  "type" => array:1 [▼
    0 => "Motorcycle"
  ]
  
  "construction" => "yes"
  "road_maintain" => "MMRDA"
  "caseregister" => "yes"
  "ipmvc" => "IPC 34"
  "submit" => "Submit"
]

解决方法

我刚刚将控制器更新为:检查输入的值是否为空,如果未选择值,则将其设置为空

foreach ($request->type as $key => $type)
           
        {
          $vehicle = new Vehicle();
          $vehicle->type = $type;
          $vehicle->vehicleno = $request->vehicleno[$key];
          $vehicle->make = isset($request->make[$key]) ? $request->make[$key]:null;
          $vehicle->helmet = isset($request->helmet[$key]) ? $request->helmet[$key]:null;
          $vehicle->seatbelt = isset($request->seatbelt[$key]) ? $request->seatbelt[$key]:null;
          $vehicle->cleaner = isset($request->cleaner[$key]) ? $request->cleaner[$key]:null;
          $vehicle->type_taxi = isset($request->type_taxi[$key]) ? $request->type_taxi[$key]:null;
          $vehicle->accidents_id=$accident->id;
          $vehicle->save();
      
        }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。