2017-03-24 119 views
1

我有一些電子郵件附加生成pdf的問題,希望你能給我一些建議,請善意幫助。在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('[email protected]', 'PuraBox'); 
     $message->to($data['email_address']); 
     if($data['cc'] != null){ 
      $message->cc($data['cc']); 
     } 
     $message->subject($data['subject']); 
     $message->Attach($pdf); 
    }); 

    return redirect('/'); 
} 

如何我可以附加$pdf

回答

1

您正在使用:

$message->Attach($pdf); 

將附件添加到電子郵件,使用傳遞給你的閉幕$消息對象的附加方法。 Attach方法接受的第一個參數的完整路徑文件:

Source

您應該使用attach方法(沒有大寫字母),並在參數,你需要傳遞的路徑pdf是,而不是生成的PDF。像文檔說的那樣。

$message->attach($pathToFile); 

最後,將是類似的東西:

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

    //Full path with the pdf name 
    $message->attach('foo/bar/mypdfname.pdf'); 
}); 
+0

生成後我做了這個$ pdf-> save(base_path()。'/ public/document/report/laporan.pdf'); 然後如何附加路徑,因爲我使用了base_path() –

0

我不知道你正在使用的PDF生成的庫,但我想應該有一個API這樣的事情,

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

$path = storage_path('app/public/pdf/')."example.pdf"; 

$pdf->save($path); 

return $path; 

然後您可以使用該路徑附加到電子郵件。

希望這會有所幫助。

相關問題