簡體   English   中英

從laravel5中的路由將多個參數傳遞給控制器

[英]pass multiple parameters to controller from route in laravel5

我想在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

如果用戶要打印PDFURL將是這樣,

 /invoices/pdf/26/print  or /invoices/print/26

laravel5中可能如何?

首先,您的路線或示例中的網址無效,在一個地方使用quotations而在其他invoices

通常,您不想重復執行相同操作的url,但如果確實需要,則需要創建額外的路由:

Route::get('invoices/print/{id}', 'QuotationController@generatePDF2');

並在控制器中添加新方法

public function generatePDF2($id) {
   return $this->generatePDF($id, true);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM