Ошибка с FPDF

Я не знаю почему, но мой пакет PDF не работает, и теперь у меня есть эта ошибка.
Проблема исходит от класса внутри цикла while

Спасибо

Обратите внимание: OM \ Registry :: set — Заказ уже зарегистрирован и не подлежит замене в /home/www/shop/includes/OM/Registry.php в строке 33
Неустранимая ошибка: необработанное исключение: ошибка FPDF: некоторые данные уже были выведены, не удается отправить файл PDF в /home/www/boutique/ext/fpdf/fpdf.php:271 Трассировка стека: # 0 / home / www / boutique /ext/fpdf/fpdf.php(1063): FPDF-> Ошибка («Некоторые данные имеют …») # 1 /home/www/boutique/ext/fpdf/fpdf.php(999): FPDF-> _checkoutput () # 2 /home/www/boutique/admin/invoice_batch.php(570): FPDF-> Output () # 3 {main} в /home/www/boutique/ext/fpdf/fpdf.php в строке 271

Эта ошибка связана с этим элементом

// Classe pdf.php
$pdf = new \FPDF();

// $pdf->SetWidths(array(30,50,30,40));

while ($QordersInfo->fetch()) {
Registry::set('Order', new OrderAdmin($QordersInfo->valueInt('orders_id')));
$order = Registry::get('Order');
...

..
}

// PDF's created no

// output the file
$pdf->Output();

Если я напишу это, он «отлично работает», но отобразит только 1 счет.

// Classe pdf.php
$pdf = new \FPDF();

// $pdf->SetWidths(array(30,50,30,40));

while ($QordersInfo->fetch()) {
Registry::set('Order', new OrderAdmin($QordersInfo->valueInt('orders_id')));
$order = Registry::get('Order');
.....

// output the file
$pdf->Output();
}

1

Решение

Трудно отследить проблему, не зная, что Registry::set() делает, но похоже, что первый параметр этой функции должен быть уникальным ключом. В вашем коде ключ всегда 'Order' в каждой итерации цикла. Первая итерация будет в порядке, но во второй итерации она сгенерирует вывод, чтобы дать вам Notice что там уже есть запись реестра с этим ключом.

$pdf->Output() Функция проверяет, что-нибудь в вашем PHP-коде уже создало какой-либо вывод. Поскольку Notice был отправлен на вывод, FPDF не может начать рендеринг и выдает ошибку FPDF, чтобы вы знали.

Либо используйте уникальный ключ (возможно, идентификатор заказа?), Либо принудительно заменяйте запись реестра в каждой итерации. Если это не поможет вам снова, отправьте код класса Registry, чтобы мы могли углубиться в проблему.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector