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 :
codice:
Trying to access array offset on value of type int (View: C:\xampp\htdocs\MailSender\resources\views\index\index.blade.php)
Il codice del controller è:
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;*/
}
}
mentre quello della vista è:
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>
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.
Grazie a tutti per l'aiuto e buone feste!!