Components\ReportGenerator\Controllers\Backend\ReportGeneratorController::csvReport PHP Метод

csvReport() приватный Метод

Generate a CSV report
private csvReport ( array $input, $generator ) : string
$input array Input
Результат string
    private function csvReport($input, $generator)
    {
        $module = Module::find($generator->module_name);
        $output = '';
        $output = fopen('php://output', 'w');
        fputcsv($output, array(get_setting('company_name')));
        fputcsv($output, array($generator->name));
        $date_info = '';
        if ($input['start_date'] != '') {
            $input['start_date'] = preg_replace('/ \\d+:.*$/', '', $input['start_date']);
            $date_info .= "From: {$input['start_date']}";
        }
        if ($input['end_date'] != '') {
            $input['end_date'] = preg_replace('/ \\d+:.*$/', '', $input['end_date']);
            $date_info .= " To: {$input['end_date']}";
        }
        fputcsv($output, array($date_info));
        $modules = $this->getModules($generator->modules, $input);
        foreach ($modules as $i => $module) {
            // Put the name of the fields in CSV
            fputcsv($output, $module['required_fields']);
            foreach ($module['entries'] as $entry) {
                $fields = array();
                foreach ($module['required_fields'] as $field => $name) {
                    $fields[] = $entry->{$field};
                }
                fputcsv($output, $fields);
            }
        }
        $footer = 'Printed by: ' . current_user()->username . ' on ' . date('Y-m-d h:m:i');
        fputcsv($output, array($footer));
        fclose($output);
        $csv = ob_get_clean();
        $filename = $generator->name != '' ? Str::slug($generator->name, '_') : Str::slug($module->name, '_');
        $headers = array('Content-Type' => 'text/csv', 'Content-Disposition' => 'attachment; filename="' . $filename . '.csv"');
        return Response::make(rtrim($csv, "\n"), 200, $headers);
    }