【问题标题】:TCPDF import variables to extensionTCPDF 将变量导入扩展
【发布时间】:2014-02-12 05:32:36
【问题描述】:

我正在使用 TCPDF 和 Codeigniter。我正在尝试使用来自我的 MYSQL-DB 的信息创建一个自定义标头:$header_content

尽管我无法将变量导入到类 MYPDF 中而不会出现变量不退出的错误。

如何将变量导入到类中?

我确信有一个简单的解决方案,我就是想不通! :)

控制器/pdf.php

class Pdf extends CI_controller { 

    public function __construct() 
    {
        parent::__construct();
        $this->load->model('item_model');
    }


   public function create($nr = 1)
   {
        $data['pd']= $this->item_model->get('personal_details');

        require_once APPPATH.'third_party/tcpdf/tcpdf.php';    

        $this->load->view('create_1', $data);
    }
}

查看/create_1.php

    $header_content = $pd->fname.' '.$pd->sname;
    $header_font = $pd->font.;

    class MYPDF extends TCPDF
    {
        function __construct()
        {
            parent::__construct();
        }

        //Page header
        public function Header() 
        {
            // Set font
            $this->SetFont($header_font, '', 10);

            // Title
            $this->Cell(0, 15,  $header_content, 0, false, 'L', 0, '', 0, false, 'M', 'M');
        }
    }

    // create new PDF document
    $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

【问题讨论】:

  • 父函数的变量(如$header)不在作用域内,除非您使用parent:: 调用它,否则它不会运行,即使那样您也无法访问它们。您可以访问对象本身的公共变量和受保护变量,所以$this->whateveryouneed

标签: php codeigniter class tcpdf extends


【解决方案1】:
global $header_content ;
$header_content = '123123213dd213';

class MYPDF extends TCPDF
{
    function __construct(  )
    {
        parent::__construct();
    }

    //Page header
    public function Header() {

        global $header_content ;


        // Set font
       $this->SetFont('helvetica', '', 10);

        $this->Cell(0, 15,  $header_content , 0, false, 'L', 0, '', 0, false, 'M', 'M');
    }


}

非常感谢 Merianos Nikos 在How to make variable global across entire class 的回答

这很好用。但这是正确的方法吗?

【讨论】:

    【解决方案2】:
    class MYPDF extends TCPDF
    {
        public $header_content;
    
        //Page header
        public function Header() 
        {
            // Set font
            $this->SetFont($header_font, '', 10);
    
            // Title
            $this->Cell(0, 15,  $this->header_content, 0, false, 'L', 0, '', 0, false, 'M', 'M');
        }
    }
    
    
    // create new PDF document
    $pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
    $pdf->header_content= $pd->fname.' '.$pd->sname;
    

    它对我有用。也许你可以尝试使用属性。

    【讨论】:

    • 请稍微评论一下您的代码/写一些信息文本,使其成为一个合适的独立答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 2014-01-13
    • 1970-01-01
    • 2020-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多