【问题标题】:CodeIgniter: 4.0.3 FPDF - error Class 'FPDF' not foundCodeIgniter:4.0.3 FPDF - 找不到错误类“FPDF”
【发布时间】:2020-07-22 09:06:36
【问题描述】:

我正在尝试使用 fpdf 库从 CodeIgniter: 4.0.3 生成 PDF 文档。我已将 fpdf 库复制到 app/ThirdParty 文件夹中。

我已经在控制器顶部包含了库引用,就像这样。

    <?php namespace App\Controllers\Purchase;

     namespace App\ThirdParty\fpdf;

     use CodeIgniter\Controller;

     use FPDF;

我在控制器中创建了一个类来扩展 FPDF 以包含这样的页眉和页脚。

    class PDF extends FPDF
    {

    
       function Header()
       {
       }
    
    }

我像这样生成pdf。

       $pdf = new PDF();
       $pdf->AddPage();

当我运行应用程序时,我收到此错误。

错误 找不到类“FPDF” 114类PDF扩展FPDF

如何解决这个问题?

【问题讨论】:

  • 命名空间 App\ThirdParty\fpdf; ?您指的是第三方文件夹,那么您为什么要再次声明该名称空间?要导入类,您可以像这样使用“使用 App\...\tpf”。
  • 删除命名空间并尝试使用 App\ThirdParty\fpdf\fpdf;找不到错误类“App\ThirdParty\fpdf\fpdf”

标签: codeigniter codeigniter-4


【解决方案1】:

你应该检查你在 fpdf lib 中的命名空间是什么。看起来你对它们和use这个词有点困惑

这是一个关于如何加载位于app/ThirdParty 文件夹下的库的示例:

您的 FPDF 主类名为 FPDF.php

<?php

// the path you need to follow to access your file
namespace App\ThirdParty;

class FPDF {
    
    public function __construct() {
        // do your things
    }
}

您的控制器名为 Foo.php

<?php

namespace App\Controllers;

// the namespace of the lib file + its class name
use App\ThirdParty\FPDF;

class Foo extends \CodeIgniter\Controller {
    
    public function myPDF() {
        $pdf = new FPDF();
    }
}

【讨论】:

    【解决方案2】:

    首先在ThirdParty文件夹中包含font文件夹、fpdf.php文件和fpdf.css文件。

    打开 fpdf.php 文件并在 &lt;?php 之后包含以下 2 行

    namespace App\ThirdParty;
    
    use Exception;
    

    然后将ThirdParty文件夹中的fpdf.php文件重命名为FPDF.php

    现在您可以使用以下方法导入 fpdf:

    use App\ThirdParty\FPDF;
    

    【讨论】:

      猜你喜欢
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 2014-08-29
      • 1970-01-01
      • 2022-01-12
      相关资源
      最近更新 更多