【问题标题】:Laravel-DomPDF Guzzle GET Request From a CLILaravel-DomPDF Guzzle 从 CLI 获取请求
【发布时间】:2017-08-24 16:50:49
【问题描述】:

我想使用命令从终端执行 DomPDF 下载。 CLI 命令使用 Guzzle 执行 API 调用。我做了一个非常简单的设置。

问题

500 服务器错误

[GuzzleHttp\Exception\ServerException]
  Server error: `GET http://localhost:8888/pdf` resulted in a `500 Internal S
  erver Error` response:
  <!DOCTYPE html>
  <html>
      <head>
          <meta charset="UTF-8" />
          <meta name="robots" content="noindex,nofollow (truncated...)

API 调用

http://localhost:8888/pdf

命令

php 工匠 pdf

项目结构

  • 命令
    • PDFCommand.php
  • 控制器
    • PDFController.php
  • 查看次数
    • rapport.blade.php

源代码

路线

Route::get('pdf', 'PDFController@downloadPDF');

PDFCommand.php

<?php

namespace App\Console\Commands;

use Illuminate\Console\Command;
use GuzzleHttp\Client as GuzzleClient;

class PDFCommand extends Command
{

    protected $signature = 'pdf';

    protected $description = 'download pdf';

    public function __construct()
    {
        parent::__construct();

    }

    public function handle()
    {
        $client = new GuzzleClient;
        $client->request('GET', 'http://localhost:8888/pdf');

    }
}

PDFController.php

<?php

namespace App\Core;

use App\Http\Controllers\Controller;
use Barryvdh\DomPDF\Facade as PDF;

class PDFController extends Controller
{

    private $pdf;
    private $client;

    public function downloadPDF()
    {
        $this->pdf = PDF::loadView('report');
        return $this->pdf->download('report.pdf');
    }


}

rapport.blade.php

<!doctype html>
    <html>
        <head>
            <title>Rapport</title>
            </head>
            <body>
                <h1>TEST</h1>
                <p>Dit is een test</p>
            </body>
    </html>

【问题讨论】:

    标签: php laravel dompdf guzzle


    【解决方案1】:

    你能读一下错误吗?当您收到500 Server Error 时,响应还包含带有错误描述的 HTML。它应该包含一个错误的解释。只需将其保存到文件 (file_put_contents('...', $response-&gt;getBody()-&gt;getContents())) 或以其他方式读取。

    【讨论】:

    • 感谢您的帮助,我刚刚使用了另一个库 html2pdf。我认为发生错误是因为方法 '$this->pdf->dowload('report.pdf')' 需要浏览器才能运行。所以它具有浏览器依赖性。我实际上是通过使用 Laravel Dusk 单元测试让它工作的。它打开一个浏览器并执行 API 调用 '/pdf'
    猜你喜欢
    • 2017-04-16
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    • 2023-03-04
    • 2017-11-15
    • 1970-01-01
    相关资源
    最近更新 更多