Laravel: экспорт найденных данных в Excel - PullRequest
0 голосов
/ 25 мая 2018

Я хочу экспортировать найденные данные на уровень ниже, мой контроллер

публичная функция getUsageData (Запрос $ request) {

    $start_date = $request->get('start_date');
    $end_date = $request->get('end_date');

    $particulars = DB::table('particulars')
        ->join('reqs', 'particulars.particular_id', "=", 'reqs.particular_id')
        ->whereBetween('date_applied', [$start_date, $end_date])
        ->select('particulars.item_name', 'particulars.unit', 'particulars.price', 'reqs.quantity_issued',
            DB::raw('particulars.price*reqs.quantity_issued AS total_cost'))
        ->get();
    if ($particulars->isEmpty()) {


        return "No Records Found...................... ";

    } else {

        $pdf = PDF::loadView('issuer.getUsageReport', ['particulars' => $particulars]);
        return $pdf->stream('getUsageReport.issuer');
    }
}

Вместо этого я хочу получить эти данные в Excelиз pdf, пожалуйста, помогите

1 Ответ

0 голосов
/ 25 мая 2018

Замените две строки PDF в операторе else { ... } на:

$list = $particulars->toArray();

//This line adds headers if present in your data
array_unshift($list, array_keys($list[0]));

$callback = function() use ($list) {
    $FH = fopen('php://output', 'w');
    foreach ($list as $row) { 
        fputcsv($FH, $row);
    }
    fclose($FH);
};

return response()->streamDownload($callback,"filename.csv");

В зависимости от структуры particulars может потребоваться сначала выполнить некоторые манипуляции с данными, например, выравнивание.Комментарий ниже, если так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...