Можно ли использовать js скрипт с laravel crontab? - PullRequest
0 голосов
/ 09 апреля 2020

Я планирую составить отчет в 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);

}

Есть ли способ заставить мой javascript быть загруженным при вызове моего crontab?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2020

Нет, поскольку ваш JavaScript находится на стороне клиента, он не может быть вызван на сервере. Не без создания сценария Node.js для создания вашего PDF.

В качестве альтернативы, вы можете просмотреть некоторые PHP пакеты генерации PDF, а затем создать ремесленную команду и настроить cron job и создайте свой PDF на стороне сервера.

0 голосов
/ 09 апреля 2020

Я не эксперт по NodeJS, но если ваша проблема связана с PDF, вы, безусловно, можете сделать то же самое в сценарии NodeJS, а затем вызвать этот сценарий из своего cron

...