是否可以将js脚本与laravel-crontab一起使用



我将在Laravel中进行报告调度。假设我想向每天早上从数据库中收到的电子邮件列表发送一个pdf文件。我编写了一个从控制器调用函数的命令,该函数返回我编写脚本的视图。

我不想使用snappy或任何其他php库,而是想用jspdf编写报告。在脚本中,我会通过ajax将生成的数据传回控制器,并将文件保存在存储器中。

<script type="text/javascript">
$(document).ready(function () {
var doc = new jsPDF();
doc.text('text', 80, 10);
var pdf = btoa(doc.output());
$.ajax({
method: "POST",
headers: {
'Access-Control-Allow-Headers' : '*',
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
},
url: url,
data: {data: pdf},
}).done(function(data){
console.log(data);
});
});
</script>

然后在控制器中我会这样做:

public function data(Request $request)
{
$data = base64_decode($request->data);
Storage::put('app/public', $data);
}

当调用crontab时,有没有什么方法可以强制加载javascript?

我不是NodeJS专家,但如果你的问题依赖于PDF,你当然可以在NodeJS脚本中做同样的事情,然后从你的cron 调用这个脚本

否,因为您的JavaScript是客户端的,所以无法在服务器上调用。不需要制作Node.js脚本来生成PDF。

或者,您可以查看一些PHP PDF生成包,然后创建一个artisan命令并设置一个cron作业,使您的PDF在服务器端生成。

最新更新