【问题标题】:pass multiple parameters to controller from route in laravel5从 laravel5 中的路由向控制器传递多个参数
【发布时间】:2015-04-19 09:01:03
【问题描述】:

我想将多个参数从路由传递到 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 中怎么可能?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    并在控制器中添加新方法

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-15
      • 2015-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-22
      • 1970-01-01
      • 2012-09-20
      • 2017-05-14
      相关资源
      最近更新 更多