【问题标题】:Too few arguments to function when downloading a PDF下载 PDF 时参数太少而无法运行
【发布时间】:2021-03-07 22:14:32
【问题描述】:

我正在尝试使用 Barryvdh DomPDF 库生成包含个人用户一些详细信息的 PDF,但在尝试生成它时遇到了一些问题。

控制器方法:

public function downloadPDF(Card $card)
{
    $user = User::find($card->user_id);

    $pdf = (new \Barryvdh\DomPDF\PDF)->loadView('pdf/cardsReport', $user);

    return $pdf->download('cards.pdf');
}

这是我引用路线的方式。

<a href="{{ route('get::admin.download-pdf', ['card' => $profile->card->display()]) }}">Download PDF</a>

路线:

$router->get(
    '/downloadPDF/{card}',
    [
        'as' => 'get::admin.download-pdf',
        'uses' => 'EditCardController@downloadPDF',
    ]
);

我收到此错误:

类型错误:函数的参数太少 Barryvdh\DomPDF\PDF::__construct(), 0 传入 EditCardController.php 正好是 4 个。

我对此感到困惑,因为我已经看到许多使用 pdf 和 laravel 的示例,您不需要传递四个参数,所以想知道为什么会这样?

【问题讨论】:

  • 现在已经解决了,不用DomPDF就可以对其进行排序

标签: php laravel pdf


【解决方案1】:

根据documentation,你应该使用facade而不是constructor:

public function downloadPDF(Card $card)
{
    $user = User::find($card->user_id);

    $pdf = PDF::loadView('pdf/cardsReport', $user);

    return $pdf->download('cards.pdf');
}

【讨论】:

    【解决方案2】:

    请使用以下格式

       $data = [
          'title' => 'Welcome to ItSolutionStuff.com',
          'date' => date('m/d/Y'),
       ];
       $pdf = App::make('dompdf.wrapper');
       $pdf->loadView('bill',$data);
       return $pdf->stream();
    

    【讨论】:

      猜你喜欢
      • 2020-06-06
      • 2020-09-10
      • 2013-06-24
      • 1970-01-01
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 2015-06-09
      • 2017-12-05
      相关资源
      最近更新 更多