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)
..
然后我的问题就解决了..
解决方案实际上是基于这个问题:
从 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)
..
然后我的问题就解决了..
解决方案实际上是基于这个问题: