gsk
gsk

Reputation: 2379

pass multiple parameters to controller from route in laravel5

I want to pass multiple parameters from route to controller in laravel5.

ie,My route is ,

Route::get('quotations/pdf/{id}/{is_print}', 'QuotationController@generatePDF');

and My controller is,

   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();
    }

If user want to download PDF, the URL will be like this,

/invoices/pdf/26

If user want to print the PDF,the URL will be like this,

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

How it is possibly in laravel5?

Upvotes: 0

Views: 880

Answers (1)

Marcin Nabiałek
Marcin Nabiałek

Reputation: 111839

First, the url in your route or in your example is invalid, in one place you use quotations and in the other invoices

Usually you don't want to duplicate urls to the same action but if you really need it, you need to create extra route:

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

and add new method in your controller

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

Upvotes: 1

Related Questions