Iterar un request antes de guardar Laravel 8 [closed]

  laravel

soy nuevo en laravel y quisiera ver como puedo guardar multiple datos ontenidos desde una tabla, el porp├│sito es que teniendo uno o mas tanques de almacenamiento de liquido, se pueda obtener el volumen de cada uno de estos tanque cargando la altura y alto
mi problema que no puedo iterar mi request para guardar mis datos he trarado con

foreach ($request as $key => $item) {
    // ...
}

pero me da error.
Mi objetivo es crear un registro con cada uno de los objetos del array.

Modelo TankDetail

class TankDetail extends Model
{
    use HasFactory, Notifiable, HasRoles;
      /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'fecha',
        'hora',
        'tank_id',
        'altura',
        'agua',
        'vol_agua',
        'vol_oil',
        'vol_total',

    ];

    public function CalculoVolumen(array $models = [])
    {
        ///falta hacer calculo
        return new CalculoVolumen($models);
    }
}

Modelo Tanque

   protected $fillable = [
        'codigo',
        'nombre',
        'capacidad',
        'cte',
        'api',
        'fabricacion',      
        'interno', //si o no
        'alturaH', //altura total         
        'largoL', //altura total         
        'obs',
        'estado',
    
    ];


 
    public function TankDetail(){
        return $this->hasMany("AppModelsTankDetail");
        
    }

Vista

              <table class="table-bordered" id="tabla_produccion" style="width: 100%">
                            <thead class="text-center"> 
                              <th class="text-left">Tanque</th>
                              <th class="text-center">Altuta (cms)</th>
                              <th class="text-center">Agua (cms)</th>
                              <th class="text-center">Ver</th>
                            </thead>
                            <tbody>
                              @foreach($tanques as $tanque)
                                <tr class="text-danger">
                                  <td  class="text-left">{{$tanque->nombre}}<input type="hidden"  name="tank_id[]" id="tank_id" value="{{$tanque->id}}"><input type="hidden"  name="api[]" id="api" value="{{$tanque->api}}"> <input type="hidden"  name="largoL[]" id="largoL" value="{{$tanque->largoL}}"> <input type="hidden"  name="alturaH[]" id="alturaH" value="{{$tanque->alturaH}}"><input type="hidden"  name="cte[]" id="cte" value="{{$tanque->cte}}"> </td>
                                  <td> <input type="number" class="form-control" name="altura[]" id="altura" placeholder="Altura..."></td>
                                  <td> <input type="number" class="form-control" name="agua[]" id="agua" placeholder="Agua..."></td>
                                  <td><a class="btn btn-info btn-md btn-flat"  data-toggle="modal" data-target="#modalModificar" href="#" id="{{$tanque->id}}"  ><i class="fas fa-check"></i>&nbsp;&nbsp;Producci├│n</a></td>
                                </tr>  
                              @endforeach
                            </tbody>
                          </table>


Controlador:

  public function index()
    {
        abort_if(Gate::denies('production_parte'), 403);     
        $tanques=DB::table('tanks')->where([
           ['estado', '=', 'Activo'],            
       ])->get();         
       
       return view('tankdetail.index', compact('tanques')) ->with('message', 'Tanques activos listados correctamente');

    }

Request:
Request del store

Source: Laravel

Leave a Reply