2017-03-22 83 views
0

我試圖從數據庫中獲取數據並將這些數據傳遞給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}', '[email protected]'); 

控制器

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, 
    ] 
+0

你得到的錯誤是什麼? – Learner

+0

它執行一段時間,然後得到這個錯誤'超過60秒的最大執行時間' –

+0

http://stackoverflow.com/questions/30270316/how-to-solve-a-timeout-error-in-laravel-5 – Learner

回答

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', '[email protected]');