Сценарий: в настоящее время я пытаюсь преобразовать представление Laravel в pdf, чтобы пользователь мог иметь pdf-версию своей страницы профиля.
Info: Я использую кассир Laravel, который, по-видимому, поставляется с dompdf для создания счетов-фактур. Я обнаружил это при попытке сделать
композитору требуется dompdf/dompdf
Сообщение об ошибке было
laravel/cashier v6.0.18 требует dompdf/dompdf ^ 0.6.1 → выполнимый dompdf/dompdf [v0.6.1, v0.6.2], но это противоречит вашим требованиям или минимальной стабильности
Также обнаружено из документации кассира Laravel: https://laravel.com/docs/5.4/billing#generating-invoice-pdfs
Поэтому я использую dompdf v0.6.
Проблема: я пытаюсь использовать dompdf как обычно, так как я думаю, что у меня есть настройка от кассира Laravel. Но я получаю много ошибок в контроллере при попытке использовать любую функциональность из dompdf, если попытаюсь:
use Dompdf;
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Я получаю сообщение о том, что класс Dompdf не определен. поэтому, если я попытаюсь использовать функции кассира Laravel для их "конвертации PDF-документов для счетов-фактур" следующим образом:
$pdf = downloadInvoice::loadView('dashboard.index', ['user' => $user]);
return $pdf->download('profile.pdf');
Затем я получаю сообщение об ошибке
Класс 'App\Http\Controllers\downloadInvoice' не найден
Я много раз пробовал Googling, но на самом деле я действительно потерялся, может ли кто-нибудь быть таким добрым, чтобы указать на потерянного разработчика в правильном направлении? :) Спасибо за ваше время в превзошли!
EDIT: Я пробовал:
$pdf = PDF::loadView('dashboard.index', ['user' => $user]); return $pdf->download('profile.pdf');
но получить
Класс 'App\Http\Controllers\PDF' не найден
Похоже, что dompdf даже не реконструирован. Может быть, я могу посмотреть на это и посмотреть, работает ли эта штука?
На основе документации быстрого запуска код должен выглядеть так:
use Dompdf\Dompdf; <-- May this is the mistake
// instantiate and use the dompdf class
$dompdf = new Dompdf();
$dompdf->loadHtml('hello world');
// (Optional) Setup the paper size and orientation
$dompdf->setPaper('A4', 'landscape');
// Render the HTML as PDF
$dompdf->render();
// Output the generated PDF to Browser
$dompdf->stream();
Дайте мне знать, если все же это не сработает для вас.
Класс 'App\Http\Controllers\downloadInvoice' не найден
Похоже, что ваш downloadInvoice.php
находится в другой папке и/или использует другое пространство имен, поэтому вы просто пропустите правильное use
(если вы используете PHPStorm, просто поставьте курсор рядом с downloadInvoice::
и нажмите CTRL+ENTER.
В некоторых случаях вам также может понадобиться сделать composer dumpautoload
use Dompdf\Dompdf;