'Laravel 9 - ERROR: The body of "Symfony\Component\Mime\Part\TextPart" must be a string or a resource (got "Illuminate\Http\Response") [duplicate]
after upgrade from Laravel 6 to 9, i have this error...
Below is my code that produce the error:
$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("[email protected]")
->subject('Your Order (123456) Has Been Paid')
->attachData($pdf_stream, $pdf_name, [
'mime' => 'application/pdf'
]);
});
I don't have any idea what is the mistake I made... or do I need to amend something after upgrade to version 9?
I already try use Mailable
class instead, but still occurred the same error.
Solution 1:[1]
I just solved the problem...
Actually it is not related with Laravel upgrade...
But actually it has problem with barryvdh/laravel-dompdf
newer version...
After upgrade laravel-dompdf
, I need to use $pdf->output()
instead of $pdf->stream($pdf_name)
..
Then my problem solved..
The solution is based on this question actually: https://stackoverflow.com/a/60947707/5179633
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Syamsoul Azrien |