如何修复laravel中出现的"Class 'PDF' not found"错误

5
在我的Laravel应用程序中遇到了以下错误:
``` CollaboPDFController.php第14行致命错误:找不到“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');
      }
      //
  }

我该如何解决这个问题?

你的PDF类位置在哪里? - Md. Sahadat Hossain
laravel config/app.php - Fernando
8个回答

12
您使用了错误的导入方式。如果要使用您想要的PDF(可能是laravel-dompdf),请使用以下方式:
use Barryvdh\DomPDF\Facade as PDF;
如果您将'PDF' => Barryvdh\DomPDF\Facade::class,加入您的config/app.php文件中,您也可以使用以下方式:
use \PDF;
或者
\PDF::loadView('customer.customer');

你在将DomPDF添加到composer.json后运行了 composer install 吗?还是运行了 composer require dompdf/dompdf - Bart Bergmans

10

首先,您需要安装DOMPDF软件包。

步骤 1:

composer require barryvdh/laravel-dompdf

步骤2:在..\config\app.php文件中

'providers' => [ 
  .....
  Barryvdh\DomPDF\ServiceProvider::class,
],
'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade::class,
]

第三步:

use \PDF;

第四步:

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

1
我正在使用Lumen框架来开发我的应用程序API。请问您能否建议我如何在Lumen API中使用Barryvdh\DomPDF来生成和存储PDF文件。非常感谢您的帮助。 - Kamlesh

4
在安装dompdf并在config/app.php文件中设置服务提供程序和别名后,您可以运行以下命令:php artisan cache:clearphp artisan config:cache

4
在我的情况下,我尝试了上面的一些例子,但都没有成功。然而,我浏览了位于此处的软件包目录: project-folder>vendor>barryvdh>laravel-dompdf>src>Facade>Pdf.php 我意识到在文件 app.php 中创建的 PDF 别名并没有使用正确的类。所以请将以下内容进行替换:

'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade::class,
]

通过:

'aliases' => [
  .....
 'PDF' => Barryvdh\DomPDF\Facade\Pdf::class,
]

我希望这能对您有所帮助。


3
运行以下命令:
composer require barryvdh/laravel-dompdf

1

对于那些尝试了上述所有解决方案都无效的人! 试试这个,对我有用。 在控制器中替换

use Barryvdh\DomPDF\Facade as PDF;

通过
use Barryvdh\DomPDF\Facade\Pdf as PDF;

0

终于找到了解决方案,实际上是我的domPDF安装出了问题,我是这样发现的

php artisan cache:clear
// and
php artisan config:cache

并重新安装domPDF


domPDF 是什么? - Eclipse-fan

0

这是关于bootstrap文件夹中cache config.php的问题。

共享主机不会显示您的[项目文件夹]的完整路径,如果您想要清除缓存,则必须购买他们的插件。通过给定的解决方案,您无需购买任何插件或清除/配置Laravel 5.6或更高版本的缓存。

在浏览器中输入URL,它将给出错误日志。现在打开您的错误日志并从错误日志中复制路径

将[your project folder]/bootstrap/cache中的config.php中的所有文件路径,[your project folder]\bootstrap\cache或[your project folder]*等更改为从错误日志中复制的完整路径,例如/mnt/stor2-wc1-dfw1/411797/622471/[yourdomain]/web/content/[your project folder]


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接