как скачать PDF в laravel 5.4?

Я пытаюсь получить данные из базы данных, передать эти данные в формат PDF и загрузить их.

Я пробовал этот код, но он не работает:

<a href="{{url('/download-PDF/'.$eventData->id)}}" class="btn btn-danger pull-right">Download PDF </a>

Маршрут

Route::get('download-PDF/{id}', 'PDFController@pdf');

Контроллер

class PDFController extends Controller
{
public function pdf($id){
    $getEvent=Event::find($id);
    $eventId=$getEvent->id;


    if(isset($eventId)) {

        $eventData = Event::where('id', $eventId)->first();
        $getDays = Day::where('event_id', $eventId)->get();
        for ($i = 0; $i < count($getDays); $i++) {
            $dayId = $getDays[$i]->id;
            $schedule[$i] = DaySchedule::where('day_id', $dayId)->get();
        }

    }

    $pdf=PDF::loadView('pdf',['eventData' => $eventData, 'schedule' => $schedule]);

    return $pdf->download('event.pdf');
}
}

Конфигурация

'providers' => [
  Barryvdh\DomPDF\ServiceProvider::class,
 ]

 'aliases' => [
 'PDF' => Barryvdh\DomPDF\Facade::class,
  ]

person Jamal Ahmad    schedule 22.03.2017    source источник
comment
какую ошибку вы получаете?   -  person Learner    schedule 22.03.2017
comment
он выполняется некоторое время, а затем получает эту ошибку Maximum execution time of 60 seconds exceeded   -  person Jamal Ahmad    schedule 22.03.2017
comment
stackoverflow .com/questions/30270316/   -  person Learner    schedule 22.03.2017
comment
Это не обязательно решение вашей проблемы, но если вы знаете, что сможете выполнить двоичный файл на рабочем сервере, я обнаружил, что barryvdh/laravel-snappy намного лучше (лучше рендеринг), чем DomPDF.   -  person wunch    schedule 23.03.2017


Ответы (1)


Вы получаете какие-либо исключения?

Вот код, который я использую для создания PDF-файлов:

Контроллер:

public function generateReport(TimetableRequest $request, $id) {
    $reportData = $this->prepareReportData($id, $request->startDate, $request->endDate);
    $pdf = App::make('dompdf.wrapper');
    $pdf->loadView('pdf.report', $reportData);
    return $pdf->download('report.pdf');
}

Конфигурация

'providers' => [
    ...
    Barryvdh\DomPDF\ServiceProvider::class,
    ],

'aliases' => [
    'App' => Illuminate\Support\Facades\App::class,
    ...
    'PDF' => Barryvdh\DomPDF\Facade::class,
    ]

Маршрут

Route::get('projects/{id}/report', 'Controller@generateReport');
person Tomasz Slawinski    schedule 22.03.2017