2017-08-17 31 views
0

複数のクラスを呼び出す関数を記述しようとしていますが、それぞれが1つのPDFファイルにウィジェットを追加してそのPDFファイル全体を返します。私はこれを持ってstudentheaderで次に複数のクラスにわたるTCPDFの使用

<?php 

class PdfConstructor { 

    protected $logger; // I'm sure there's another way to use the logger located in the public dependencies without having to initalise it here 

    public function __construct($logger){ 
     $this->logger = $logger; 
    } 

    public function studentPdf(){ 
     $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); 

     // --------------------------------------------------------- 
     require 'pdfwidgets/studentheader.php'; // TODO: Need to load this via autoloader 
     $headerController = new StudentHeader($pdf); 
     $headerInfo = $hederController->getHeader(); 

     // --------------------------------------------------------- 

     //Close and output PDF document 
     $pdf->Output('C:\xampp7\htdocs\edquire-api\logs\test.pdf', 'F'); 
    } 
} 

:ここ

は、コンストラクタのコードだ私は studentheader$pdfオブジェクトを渡すためにしようとしていますが、私はエラーを取得しています

<?php 

class StudentHeader { 

    protected $pdf; 

    public function __construct($pdf){ 
     $this->$pdf = $pdf; 
    } 

    public function getHeader(){ 
     $this->pdf->AddPage(); 
    } 
} 

Catchable fatal error: Object of class TCPDF could not be converted to string in C:\xampp7\htdocs\edquire-api\classes\pdfwidgets\studentheader.php on line 8

なぜそれを文字列に変換しようとしているのですか?ウィジェットを使ってPDFを構築するより良い方法がありますか?プロパティ名を文字列にする必要があるため、それは文字列に$pdfを変換することはできませんと言っています

$this->pdf = $pdf; 

$this->$pdf = $pdf; 

それは次のようになります。

+1

yerがあなたのタイプミスを見つけようとしているだけなので、投票を終了してください。 –

答えて

1

これはライン8です。そこにプロパティ名として使用しています。

この脚注:エラーメッセージが表示されない場合は、Googleには常に良い戦略です。私は "キャッチ可能な致命的なエラー:クラスTCPDFのオブジェクトを文字列に変換できませんでした"と、上位の結果がすべて正しい方向に1つの点を見つけました。

関連する問題