Laravel: __construct () должен быть экземпляром Dompdf \ Dompdf - PullRequest
0 голосов
/ 01 ноября 2019

Он попробовал этот код, но он не работает. В чем проблема? Как я могу это исправить?

     public function PDF(Invoice $invoice)
        {
            $items = unserialize($invoice->items);
            $fileName =$invoice->invoice_code;
            $pdf = new PDF($invoice);
            $pdf->loadView('invoice.pdf', compact('invoice', 'items'));
            return $pdf->stream($fileName . '.pdf');
        }

Аргумент 1, передаваемый в Barryvdh \ DomPDF \ PDF :: __ construct (), должен быть экземпляром Dompdf \ Dompdf, экземпляром App \ Invoice, который вызывается вC: \ xampp \ htdocs \ shopping-cart \ app \ Http \ Controllers \ InvoiceController.php

1 Ответ

0 голосов
/ 01 ноября 2019

Вы можете использовать Фасад либо непосредственно с:

use use Barryvdh\DomPDF\Facade as PDF;
...
public function PDF(Invoice $invoice)
{
    $items = unserialize($invoice->items);
    $fileName =$invoice->invoice_code;
    $pdf = PDF::loadView('invoice.pdf', compact('invoice', 'items'));
    return $pdf->stream($fileName . '.pdf');
}

из после добавления его к config.php в псевдонимах:

config.php

'aliases' => [
    ...
    'PDF' => Barryvdh\DomPDF\Facade::class,
],

Контроллер

//no use needed
...
public function PDF(Invoice $invoice)
{
    $items = unserialize($invoice->items);
    $fileName =$invoice->invoice_code;
    $pdf = \PDF::loadView('invoice.pdf', compact('invoice', 'items'));
    return $pdf->stream($fileName . '.pdf');
}
...