将多个参数从laravel5中的路由传递给控制器

时间:2015-04-19 09:01:03

标签: php laravel routing laravel-5 laravel-routing

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

1 个答案:

答案 0 :(得分:1)

首先,您在路线或示例中的网址无效,在一个地方使用quotations,另一个地方invoices

通常您不想将网址复制到相同的操作,但如果您确实需要,则需要创建额外的路径:

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

并在控制器中添加新方法

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