Ciao a tutti,
Sto realizzando mediante Laravel 5.5 un piccolo controller mediante cui leggo da un file .csv dei dati, che una volta salvati in una variabile di tipo array devo mostrare a video nella view e utilizzare successivamente con il sender delle mail di Laravel.
La lettura del file .csv avviene senza alcun problema, ma quando poi provo a stampare nella vista il valore della variabile $data ottengo l'errore :
Il codice del controller è:codice:Trying to access array offset on value of type int (View: C:\xampp\htdocs\MailSender\resources\views\index\index.blade.php)
mentre quello della vista è:codice:public function getArrayFromCSV(Request $req,$delimiter=',') { // verifica sull'esistenza del file e se esso è leggibile if(!file_exists($req->sel_file) || !is_readable($req->sel_file)) { return false; } //definisco un header nullo e l'array data conetenete i dati $header=null; $data= array(); //lettura del file csv if(($handle=fopen($req->sel_file, 'r'))!== false) { while(($row = fgetcsv($handle, 1000, $delimiter))!== false) { if(!$header) {$header=$row;} else {$data[]=array_combine($header,$row);} } fclose($handle); return view('index.index')->with('data',$data); /*return $data;*/ } }
non riesco a capire quale sia il problema poiché se nel controller decommento $return data e commento la riga che ritorna la view, riesco a vedere correttamente il valore della variabile data.codice:<!DOCTYPEhtml> <htmllang="{{app()->getLocale()}}"> <head> <title>Applicazione per invio mail</title> <h2align="center">Invio mail mediante lettura di un file .csv</h2> </head> <body> @if(count($errors)>0) <divclass="alert alert-danger"> Errore upload dati:<br/> @foreach($errors->all() as $error) {{ $error }} @endforeach </div> @endif <divclass="container"> <h4align="center">Form per la selezione del file</h4> <br/> <formmethod="POST"enctype="multipart/form-data"action="{{url('/import')}}"> {{csrf_field()}} <divclass="form-group"> <label>Seleziona il file da utilizzare</label> <inputtype="file"name="sel_file"/> <inputtype="submit"name="upload"class="btn btn-primary"value="Seleziona"> </div> </form> </div> <divclass="container"> <p>Hai importato dal tuo file .csv i seguenti record</p><br/> @if (isset($data)) @foreach ($data as $d => $data) <p>Denominazione del Destinatario: {{$d['denominazioneDestinatario']}}</p><br/> @endforeach @endif </div> </body>
Grazie a tutti per l'aiuto e buone feste!!

Rispondi quotando
