如何修复在laravel中找不到的类'PDF'

Fer*_*ndo 1 php pdf laravel-5

在My Laravel应用程序中遇到以下错误:

CollaboPDFController.php第14行中的FatalErrorException:找不到类"PDF"

这是我的CollaboPDFController.php:

<?php

  namespace App\Http\Controllers;

  use Illuminate\Http\Request;

  use App\Http\Requests;
  use App\Http\Controllers\Controller;
  use PDF;

  class CollaboPDFController extends Controller
  {
      public function getPDF(){
        $pdf = PDF::loadView('customer.customer'); //line 14
        return $pdf->download('customer.customer');
      }
      //
  }
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

Rah*_*war 6

首先你必须需要DOMPDF包

第1步 :

composer require barryvdh/laravel-dompdf
Run Code Online (Sandbox Code Playgroud)

第 2 步:在 ..\config\app.php

'providers' => [ 
  .....
  Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade::class,
]
Run Code Online (Sandbox Code Playgroud)

第 3 步:

use \PDF;
Run Code Online (Sandbox Code Playgroud)

第四步 :

$pdf = PDF::loadView('pdf.report');
return $pdf->stream('report.pdf', array('Attachment' => 0));
Run Code Online (Sandbox Code Playgroud)


Bar*_*ans 5

您使用的是错误的导入.要使用您想要的PDF(可能是laravel-dompdf),请使用:

use Barryvdh\DomPDF\Facade as PDF;
Run Code Online (Sandbox Code Playgroud)

如果您'PDF' => Barryvdh\DomPDF\Facade::class,输入config/app.php,您还可以使用:

use \PDF;
Run Code Online (Sandbox Code Playgroud)

要么

\PDF::loadView('customer.customer');
Run Code Online (Sandbox Code Playgroud)


小智 5

就我而言,我尝试了上面的一些示例,但没有任何效果。但是,我浏览了位于此处的包的目录:

project-folder>vendor>barryvdh>laravel-dompdf>src>Facade>Pdf.php 我意识到在文件 >> app.php 中创建的 PDF 别名没有使用正确的类。所以替换:

'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade::class,
]
Run Code Online (Sandbox Code Playgroud)

经过:

'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,
]
Run Code Online (Sandbox Code Playgroud)

我希望这能帮到您。