CSV-export in laravel 5 controller

So, ich habe eine kleine ajax-request, um meine reviewsController@export.

Wenn ich jetzt console.log() die Daten in mein Erfolgs-Methode, die ajax-Antwort zeigt die richtigen Daten. Aber meine CSV hat nicht heruntergeladen. Also ich habe alle die richtige info und erstellt die csv im wesentlichen.

Ich denke, das hat möglicherweise zu tun mit dem setzen der Header vielleicht?

public function export()
{
    header("Content-type: text/csv");
    header("Content-Disposition: attachment; filename=file.csv");
    header("Pragma: no-cache");
    header("Expires: 0");

    $reviews = Reviews::getReviewExport($this->hw->healthwatchID)->get();
    $columns = array('ReviewID', 'Provider', 'Title', 'Review', 'Location', 'Created', 'Anonymous', 'Escalate', 'Rating', 'Name');

    $file = fopen('php://output', 'w');
    fputcsv($file, $columns);

    foreach($reviews as $review) {
        fputcsv($file, array($review->reviewID,$review->provider,$review->title,$review->review,$review->location,$review->review_created,$review->anon,$review->escalate,$review->rating,$review->name));
    }
    exit();
}

Gibt es irgendetwas, was mache ich hier falsch, oder hat Laravel haben etwas zu bieten für diese?

AFAIK ist dies nicht funktioniert, weil Sie den Aufruf dieser Funktion mit Ajax und ajax kann nicht unterstützen Kopfzeilen herunterladen. Gibt es irgendwelche spezifischen Anforderungen für den Einsatz von ajax? Ich denke, Sie können direkt rufen Sie dieses Skript und die entsprechenden Header, so sollte es auf der gleichen Seite und CSV erhalten generieren.
Ich bevorzuge nur mit ajax, da es nicht um die Seite neu zu laden. Sieht besser aus

InformationsquelleAutor Matthew Smart | 2015-09-07

Schreibe einen Kommentar