将多个参数从 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();
    }

如果用户要下载PDFURL会是这样,

/invoices/pdf/26

如果用户要打印PDFURL会像这样,

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

怎么可能在laravel5?

首先,你的路线或你的例子中的 url 是无效的,在一个地方你使用 quotations 而在另一个地方 invoices

通常你不想重复 urls 到同一个动作,但如果你真的需要它,你需要创建额外的路线:

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

并在您的控制器中添加新方法

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