0
コマンドでターミナルからDomPDFダウンロードを実行します。 CLIコマンドはGuzzleでAPI呼び出しを実行します。私は非常に簡単な設定をしました。Laravel-DomPDF Guzzle CLIからのGET要求
問題
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コール
コマンド
PHPの職人PDF
プロジェクト構造
- コマンド
- PDFCommand.php
- コントローラ
- PDFController.php
- ビュー
- rapport.blade.php
ソースコード
ルート
Route::get('pdf', '[email protected]');
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>
ありがとう、私はちょうど別のlib、html2pdfと一緒に行きました。私はmethode '$ this-> pdf-> dowload(' report.pdf ')が機能するためにブラウザが必要であるため、エラーが発生したと思います。したがって、ブラウザの依存性があります。私は実際にLaravel Dusk Unit Testを使って動作させました。ブラウザを開き、API呼び出し '/ pdf'を実行します – melkawakibi