我想在laravel5中将多个参数从路由传递给控制器。
即,我的路线是,
Route::get('quotations/pdf/{id}/{is_print}', 'QuotationController@generatePDF');
和我的控制器是,
public function generatePDF($id, $is_print = false) {
$data = array(
'invoice' => Invoice::findOrFail($id),
'company' => Company::firstOrFail()
);
$html = view('pdf_view.invoice', $data)->render();
if ($is_print) {
return $this->pdf->load($html)->show();
}
$this->pdf->filename($data['invoice']->invoice_number . ".pdf");
return $this->pdf->load($html)->download();
}
如果用户想要下载PDF
,则URL
将是这样的,
/invoices/pdf/26
如果用户想要打印PDF
,则URL
将是这样的,
/invoices/pdf/26/print or /invoices/print/26
如何在laravel5中?
答案 0 :(得分:1)
首先,您在路线或示例中的网址无效,在一个地方使用quotations
,另一个地方invoices
通常您不想将网址复制到相同的操作,但如果您确实需要,则需要创建额外的路径:
Route::get('invoices/print/{id}', 'QuotationController@generatePDF2');
并在控制器中添加新方法
public function generatePDF2($id) {
return $this->generatePDF($id, true);
}