Я создаю отчет в формате PDF и добавляю его в качестве прикрепленного к электронной почте. Я использую расширение tcpdf и использую структуру Yii. Я сомневаюсь, где разместить код для создания pdf. Я могу добавить его в код контроллера непосредственно перед отправкой электронной почты, но я хочу создать отдельную функцию, которая при вызове генерирует PDF-файл и сохраняет его на диск.Отделив модуль генерации PDF в Yii
Вот мой пример кода
$transaction->commit();
$mail = Yii::app()->Smtpmail;
$mail->IsSMTP();
$mail->IsHTML(true);
$mail->SetFrom("[email protected]", 'XXX Admin');
//$headers = "Content-Type: text/html; charset=UTF-8";
$mail->Subject = "Confirmation of survey completion";
$mail->MsgHTML("Hi $survey->first_name $survey->last_name, <br><br>Thank you for completing the survey. The details of your survey result will be sent to the leader. <br><br>Please contact the leader for further details.<br><br>Regards,<br>Admin, XXX");
$mail->AddAddress("[email protected]", "");
$mail->CharSet = 'UTF-8';
//to invoke another controller/component to generate pdf here
$controller1 = new PdfReportController("test");
$controller1->actionEnglishReport();
$dir = realpath(__DIR__ . '/../runtime/pdf-assets');
$file = $dir . '/export.pdf';
$mail->AddAttachment($file);
if(!$mail->Send())
{
Yii::log("Mailer Error: " . $mail->ErrorInfo, 'error','application');
}
else
{
Yii::log('Data1 saved!. Mail sent', 'info','application');
}
Я не очень четкое представление о том, как отделить этот модуль генерации PDF. Пожалуйста, помогите
Update: мне удалось отделить модуль в формате PDF, как это:
//Pdfreports is a component class which has MandarinReport as a static method
PdfReports::MandarinReport();
$dir = realpath(__DIR__ . '/../runtime/pdf-assets');
$file = $dir . '/export.pdf';
$mail->AddAttachment($file);
Проблема хотя Pdf создается, электронная почта с приложением не послал