2

这是我的控制器:

$html = $this->load->view('print_po', $po, TRUE);
$this->load->library('pdf');
$pdf = $this->pdf->load();

现在我已经尝试并评论每一行,显示错误的是:

$pdf = $this->pdf->load();

这是我在application/libraries中的库类:

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class pdf {

    function pdf()
    {
        $CI = & get_instance();
        log_message('Debug', 'mPDF class is loaded.');
    }

    function load($param=NULL)
    {
        include_once APPPATH.'/third_party/mpdf/mpdf.php';

        if ($params == NULL)
        {
            $param = '"en-GB-x","A4","","",10,10,10,10,6,3';
        }

        return new mPDF($param);
    }
}

只有在将代码从一台服务器移动到另一台服务器后才会出现错误(错误发生在 CentOS 服务器上,我敢打赌它区分大小写)。我的问题是:我应该修改什么以便 codeIgniter 正常加载 Exceptions.php?

4

1 回答 1

1

首先,/third_party删除短语开头的正斜杠:

include_once APPPATH.'third_party/mpdf/mpdf.php';

CodeIgniterAPPPATH用尾部斜杠定义常量。看看index.php

define('APPPATH', $application_folder.'/');

其次,确保文件/文件夹名称与您编写的相同。最好将它们全部小写。 是一个相关的话题。

更新:

类名应大写。在这种情况下,将其更改pdfPdf

class Pdf {
 // ...
}

来自 CI 文档:

命名约定:

  • 文件名必须大写。例如: Myclass.php
  • 类声明必须大写。例如: class Myclass
  • 类名和文件名必须匹配。
于 2013-08-07T13:14:09.197 回答