Próbuję wyeksportować tabelę bazy danych przy użyciu Laravel
jako pliku csv
. Chciałbym, aby użytkownik mógł wybrać przycisk Export as CSV
i pobrać tabelę jako plik csv
. Obecnie mam zdobyć ten kod, ale to nie działa:Używanie Laravel do pobierania tabeli jako CSV
mój przycisk:
<a href="/all-tweets-csv" class="btn btn-primary">Export as CSV</a>
moja droga:
Route::get('/all-tweets-csv', function(){
$table = Tweet::all();
$filename = "tweets.csv";
$handle = fopen($filename, 'w+');
fputcsv($handle, array('tweet text', 'screen name', 'name', 'created at'));
foreach($table as $row) {
fputcsv($handle, array($row['tweet_text'], $row['screen_name'], $row['name'], $row['created_at']));
}
fclose($handle);
$headers = array(
'Content-Type' => 'text/csv',
);
return Response::download($handle, 'tweets.csv', $headers);
});
Zwraca mi ten błąd:
The file "Resource id #154" does not exist
I stwierdziłem, że dzieje się tak dlatego, że próbuje pobrać plik, który nie istnieje. Czy istnieje inny sposób, w jaki mogę zmodyfikować mój kod, aby pobrać go jako csv
.
Pomyśl o tym, co się stanie, jeśli dwie osoby hit tej trasie w dokładnie w tym samym czasie ... –
Nie wiem? Zgaduję, że coś jest nie tak – Javacadabra
Zobacz moją odpowiedź na temat problemów z aktualnym kodem. –