在 Laravel 中将生成的 pdf 附加到邮件中

Chr*_*dre 3 php pdf email laravel

我在电子邮件附件生成 pdf 时遇到了一些问题,希望您能给我一些建议,请帮助。

这是控制器:

public function kirim(Request $request){
    $keluhan = keluhan::findOrFail($request->id);

    $tindak = DB::table('tindakans')
    ->join('keluhans','keluhans.id','=','tindakans.id_keluhan')
    ->select(DB::raw('tindakans.id, id_keluhan, perbaikan_sementara, revisi_dokumen, target_verifikasi, ttd_tanggung1,
    ttd_tanggung2'))->get();

    $analisa = DB::table('analisas')
    ->join('tindakans','tindakans.id','=','analisas.id_tindakan')
    ->join('keluhans','keluhans.id','=','tindakans.id_keluhan')
    ->select(DB::raw('id_tindakan, analisa, tindakan, pic, tanggal_pelaksanaan'))->get();

    $pdf = \PDF::loadView('laporan.ptkp',compact('keluhan','tindak','analisa','halaman'));
    //return $pdf->stream();

    $data = array(
        'email_address'=>$request->email_address,
        'cc'=>$request->cc,
        'subject'=>$request->subject,
        'keterangantambahan'=>$request->keterangantambahan
    );

    Mail::send('laporan.kirim', $data, function($message) use($data) {
        $message->from('christian7andrew@gmail.com', 'PuraBox');
        $message->to($data['email_address']);
        if($data['cc'] != null){
            $message->cc($data['cc']);
        }
        $message->subject($data['subject']);
        $message->Attach($pdf);
    });

    return redirect('/');
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能附加$pdf

Ada*_*ski 9

对于未来的 Google 员工:

从 Laravel 5.1 开始,您可以使用attachData()method 直接附加生成的文件,而无需保存它。

来源
手册 -原始数据附件部分

attachData 方法接受原始数据字节作为它的第一个参数,文件名作为它的第二个参数,以及一个选项数组作为它的第三个参数:

 /**
 * Build the message.
 *
 * @return $this
 */

public function build()
{
    return $this->view('emails.orders.shipped')
                ->attachData($this->pdf, 'name.pdf', [
                    'mime' => 'application/pdf',
                ]);
}
Run Code Online (Sandbox Code Playgroud)