我正在使用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)));' –