2017-08-22 20 views
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コール

http://localhost:8888/pdf

コマンド

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> 

答えて

0

は、あなただけのエラーを読んでもらえますか? 500 Server Errorを受け取った場合、応答にはエラーの説明とともにHTMLが含まれています。何が間違っているのか説明が入っているはずです。単にファイル(file_put_contents('...', $response->getBody()->getContents()))に保存するか、別の方法で読んでください。

+0

ありがとう、私はちょうど別のlib、html2pdfと一緒に行きました。私はmethode '$ this-> pdf-> dowload(' report.pdf ')が機能するためにブラウザが必要であるため、エラーが発生したと思います。したがって、ブラウザの依存性があります。私は実際にLaravel Dusk Unit Testを使って動作させました。ブラウザを開き、API呼び出し '/ pdf'を実行します – melkawakibi

関連する問題