Laravel 9 - ERROR: The body of "Symfony\Component\Mime\Part\TextPart" must be a string or a resource (got "Illuminate\Http\Response")

Laravel 9 - ERROR: The body of "Symfony\Component\Mime\Part\TextPart" must be a string or a resource (got "Illuminate\Http\Response")

从 Laravel 6 升级到 9 后,出现此错误...

下面是我产生错误的代码:

$pdf = PDF::loadView('general.layouts.pdf.receipt_paid');

$pdf_name = "PAID RECEIPT_123456";
$pdf_stream = $pdf->stream($pdf_name);

Mail::send('general.email.receipt', [], function($message) use($pdf_stream, $pdf_name){
    $message->to("johndoe@gmail.com")
    ->subject('Your Order (123456) Has Been Paid')
    ->attachData($pdf_stream, $pdf_name, [
        'mime' => 'application/pdf'
    ]);
});

我不知道我犯了什么错误...或者升级到版本 9 后我需要修改什么吗?

我已经尝试使用 Mailable class 代替,但仍然出现同样的错误。

我刚刚解决了问题...

实际上与Laravel升级无关...

但实际上 barryvdh/laravel-dompdf 较新的版本有问题...

升级laravel-dompdf后,我需要使用$pdf->output()而不是$pdf->stream($pdf_name)..

然后我的问题就解决了..

解决方案实际上是基于这个问题: