将自定义库添加到CodeIgniter

时间:2015-08-18 14:43:17

标签: php codeigniter fpdf

我在CodeIgniter中有以下类声明:

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

if (session_status()==PHP_SESSION_NONE){
    session_start();
}

require_once(APPPATH.'libraries/fpdf/fpdf17/fpdf.php');

class Fpdf {
    var $ci;
    var $pdf;
    public function __construct(){
        $this->ci =& get_instance();
        $this->pdf = new FPDF();
    }

    public function t(){
        echo 'Orayt!';
    }

    public function generateResume(){
        $this->pdf->AddPage();
        $u_id = $this->session->userdata('user_id');
        $this->db->where('user_id',$u_id);
        $data = $this->db->get('user');
        // Header
        foreach($data->result() as $row){
            $mName = $row->middle_name; $name = $row->first_name . ' ' . $mName[0] . '. ' . $row->last_name;
            $this->pdf->Cell(0,0,$name,0,1);
        }
        $this->pdf->Output();
    }

    public function testPDF(){
        $this->pdf->AddPage();
        $this->pdf->SetFont('Arial','B',16);
        $this->pdf->Cell(40,10,'Hello World!');
        $this->pdf->Output();
    }
}

?>

我的问题是,当我使用$this->load->library('fpdf');将其加载到控制器时,它无法加载。

有人可以帮我找到纠正这个错误的方法吗?提前谢谢。

2 个答案:

答案 0 :(得分:0)

用户指南: https://ellislab.com/codeigniter/user-guide/general/creating_libraries.html

检查您的文件名,对类名和文件名使用相同的名称。

我认为如果您捕获或复制错误,它会对我们有所帮助,为什么你说它没有加载?

 public function __construct(){
        $this->ci =& get_instance();
        $this->pdf = new FPDF();
    }

您使用此代码,$ his-&gt; ci通过引用分配允许您使用原始CodeIgniter对象而不是创建它的副本。

所以如果你想要打电话或使用CI图书馆,你必须喜欢这个例子,

$ data = $ this-&gt; db-&gt; get(&#39; user&#39;);  可以: $ data = $ this-&gt; ci - &gt; db-&gt; get(&#39; user&#39;);

答案 1 :(得分:0)

如果你没有加载CI_Controler,可以使用它吗?

$ci = & get_instance();
$ci->load->library('name');