Class' Dompdf \ Dompdf'找不到

时间:2016-04-01 10:39:54

标签: php laravel dompdf

我尝试使用composer安装dompdf,我按照Installing DOMPDF with Composer

的说明进行操作

到目前为止我已经

  • 在composer.json

    ...
    "require": {
        ...
        "dompdf/dompdf": "~0.6.1"
    },
    "autoload": {
    ....
    
  • 运行composer update

  • autoload.php中的
  • 已经有require __DIR__.'/../vendor/autoload.php';
  • 在vendor / dompdf / dompdf / dompdf_config.inc.php中 将def("DOMPDF_ENABLE_AUTOLOAD", true);更改为def("DOMPDF_ENABLE_AUTOLOAD", false);
  • 我的控制器代码

```     

use Dompdf\Adapter\CPDF;      
use Dompdf\Dompdf;
use Dompdf\Exception;

require_once "vendor/dompdf/dompdf/dompdf_config.inc.php";

class ArticleController extends BaseController {
  ...
  public function downloadPdf(){
    $dompdf = new Dompdf();
    $dompdf->loadHtml('hello world');
    $dompdf->render();
    $dompdf->output();
  }
}
  • "后" ArticleController @ downloadPdf
  • 的路由

所以现在当我尝试下载pdf时,如果给我错误:

  

异常' Symfony \ Component \ Debug \ Exception \ FatalErrorException'同   消息' Class' Dompdf \ Dompdf'找不到'

我是否错过了任何设置步骤或做错了什么?

3 个答案:

答案 0 :(得分:0)

我认为你不想使用dompdf 0.6 family。在0.6版本中,所有类都在全局空间中。但是,由于您的代码已准备好到0.7,请将其更改为

"dompdf/dompdf": "~0.7"

并运行composer update

答案 1 :(得分:0)

This issue at dompdf github page帮我解决了这个错误

  

最新的stable(0.6.1)不支持名称空间,因此在代码中不需要use语句。即将发布的版本(0.7.0)确实包括名称空间支持。

所以,我刚刚删除了

use Dompdf\Adapter\CPDF;      
use Dompdf\Dompdf;
use Dompdf\Exception;

并使用new DOMPDF();而不是new Dompdf();,因为版本0.6。*命名空间不起作用。

答案 2 :(得分:0)

打开文件config.php

application/config/config.php

然后更改

$config['composer_autoload'] = "FALSE";

收件人

$config['composer_autoload'] = "vendor/autoload.php";