我正在使用TCPDF庫在我的CakePHP應用程序中創建發票。如果我去/invoices/view/1
我的view.ctp包含代碼來在瀏覽器中生成和顯示pdf。我想添加將PDF作爲電子郵件附件發送的功能,因此我創建了動作/invoices/send_invoice
,並將view.ctp中的代碼複製到電子郵件模板中。CakePHP生成pdf,然後作爲電子郵件附件發送
現在我卡住了,我不知道如何在附加它之前先生成PDF。 在我view.ctp頁面模板結束時,我用
$pdf->Output(APP . 'File/pdf_invoices' . DS . 'invoice-'.$invoice['Invoice']['id'].'.pdf', 'I');
它發送的PDF查看器中,而無需創建該文件。如果我使用'F'或'FI'作爲$ pdf-> Output()的最後一個參數,但我不能保證用戶在嘗試將它作爲電子郵件發送之前查看發票。
在我send_invoice行動,我需要有一個文件生成的PDF格式,以便與它附加:
$email->attachments(APP . 'File/pdf_invoices' . DS . 'invoice-'.$invoice['Invoice']['id'].'.pdf');
具有產生在我的電子郵件模板中的PDF文件中的代碼,表示該文件不當我嘗試附加它時還存在。有什麼方法可以從電子郵件模板本身附加文件?我在想也許我可以在我的Invoice模型上編寫一個函數來生成pdf,但我想使用一些View Helper(如Number helper)來格式化我的數據。我可以在視圖中執行代碼,然後返回控制器/操作而不顯示視圖嗎?
謝謝!我可以用這行'$ email-> attachments(array('invoice - '。$ invoice_id。'。pdf'=> array('data'=> $ output)));' –