Класс 'MpdfException' не найден - PullRequest
       13

Класс 'MpdfException' не найден

0 голосов
/ 13 января 2019

Я использую CodeIgniter в проекте, который генерирует PDF. это работает один раз в одном PDF, теперь я попробовал другой, он получил ошибку. Вот код:

class Checkout extends CI_Controller {
    public function __construct(){
        parent::__construct();
        $this->load->model('PurchaserModel', 'purchaser');
            .... 
        $this->load->library('M_pdf');
    }

    public function save(){
        ..... 
        $data['orders'] = $this->order->get_order_details($logged_in_id);
        if($data['orders']){
            $details = $this->purchaser->get_purchaser_details($this->session->userdata['logged_in']['username']);
            $data['details'] = convertvalue($details);
            $order_id = $data['orders'][0]['order_id'];
            $data['order_id'] = $order_id;
        }
        // 1st PDF work fine if the other generate PDF is commented out
        $purchaser_sheet_html = $this->load->view('pdf/purchaser_sheet', $data, true);
        $purchaser_sheet_html2 = $this->load->view('pdf/purchaser_sheet_page_2', $data, true);
        $pdf1 = $this->m_pdf->load();
        $pdfFilePath1 = uniqid(rand(), true);
        $pdfFilePath = "purchase-order-summary-".date('Ymdhis')."-".$pdfFilePath1.".pdf";
        $pdf1->WriteHTML($purchaser_sheet_html);
        $pdf1->AddPage();
        $pdf1->WriteHTML($purchaser_sheet_html2);
        $pdf1->Output("./uploads/".$pdfFilePath, "F"); // this is line 425 and got error 

        // 2nd PDF when this code is up, it got an error
        $construction_sheet_summary = $this->load->view('pdf/construction_sheet_summary', $data, true);
        $pdf2 = $this->m_pdf->load();
        $pdfFilePath2 = uniqid(rand(), true);
        $pdfFilePath_2 = "construction-sheet-summary-".date('Ymdhis')."-".$pdfFilePath2.".pdf";
        $pdf2->WriteHTML($construction_sheet_summary); // this is line 433 and got error 
        $pdf2->Output("./uploads/".$pdfFilePath_2, "F");

        $this->db->update($this->db->dbprefix('order'), array('purchaser_sheet' => $pdfFilePath, 'construction_sheet' => $pdfFilePath_2), array('ID' => $insert_id));
        $email_settings = $this->settings->email_settings();

    }

и это полное сообщение об ошибке:

A PHP Error was encountered
Severity: Warning

Message: count(): Parameter must be an array or an object that implements Countable

Filename: mpdf/mpdf.php

Line Number: 1770

Backtrace:

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 1770
Function: _error_handler

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 7591
Function: Close

File: C:\xampp1\htdocs\dev.app.com\public\application\controllers\Checkout.php
Line: 425
Function: Output

File: C:\xampp1\htdocs\dev.app.com\public\index.php
Line: 315
Function: require_once

A PHP Error was encountered
Severity: 8192

Message: The each() function is deprecated. This message will be suppressed on further calls

Filename: mpdf/mpdf.php

Line Number: 9143

Backtrace:

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 9143
Function: each

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 27927
Function: _putimages

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 9508
Function: _putresources

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 1797
Function: _enddoc

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 7591
Function: Close

File: C:\xampp1\htdocs\dev.app.com\public\application\controllers\Checkout.php
Line: 425
Function: Output

File: C:\xampp1\htdocs\dev.app.com\public\index.php
Line: 315
Function: require_once

An uncaught Exception was encountered
Type: Error

Message: Class 'MpdfException' not found

Filename: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php

Line Number: 32456

Backtrace:

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 22328
Function: ConvertSize

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 15440
Function: setCSS

File: C:\xampp1\htdocs\dev.app.com\public\application\third_party\mpdf\mpdf.php
Line: 13614
Function: OpenTag

File: C:\xampp1\htdocs\dev.app.com\public\application\controllers\Checkout.php
Line: 433
Function: WriteHTML

File: C:\xampp1\htdocs\dev.app.com\public\index.php
Line: 315
Function: require_once

Я попытался отладить код и обнаружил, что эта строка получила isseu

$construction_sheet_summary = $this->load->view('pdf/construction_sheet_summary', $data, true);

I construction_sheet_summary.php присутствует, я попытался удалить весь код php в этом файле, но получил ту же ошибку.

Кто-нибудь имеет представление о моем деле?

1 Ответ

0 голосов
/ 17 января 2019

Как рекомендует @Viney в комментарии, обновите (предпочтительно) до последней версии mPDF с помощью composer - это решит обе зависимости и предупреждение об устаревании each().

...