我使用CakePHP 2.4和TCPDF来生成发票。
如果生成新发票,每天都会检查一个cronjob。
当我通过浏览器访问该功能时,一切都很完美。
当我通过shell访问该函数时,出现错误:
CronjobShell.php:
$cmsoptions = $this->Cmsoption->find('first');
$this->set(compact('data', 'cmsoptions'));
$this->layout = 'pdf';
$this->render();
"调用未定义的方法CronjobShell :: set()"
我知道Set选项正在解决问题。但是如何使用Cronjob生成PDF?
答案 0 :(得分:2)
问题是AppShell
默认情况下不支持视图功能。就像在similar question中一样,您必须添加以下内容:
App::uses('View', 'Core');
$view = new View();
$view->set(compact('data', 'cmsoptions'));
$view->layout = 'pdf';
$pdfContent = $view->render();
然后,您可以在$pdfContent
或类似的帮助下使用file_put_contents('/var/www/new_invoice.pdf', $pdfContent);
作为PDF文件的内容。