2017-04-04 31 views
0

データベースから値を取得しようとしています。私はidの名前を取得したい '17'。 私はLaravel 5.4とTCPDFTCPDFはデータベースから値を取得します

を使用しています。これは、私のコントローラのコードです:Trying to get property of non-object

がどのように私はこの問題を解決します:

public function createpdf($id) { 

    $scan = Scan::find($id);  
    $pdf = new \TCPDF(); 

    $pdf->SetPrintHeader(false); 
    $pdf->SetPrintFooter(false); 
    $pdf->AddPage(); 
    $pdf->Text(90, 140, 'Test'); 

    $filename = storage_path() . $scan->name . '.pdf'; 



    $pdf->output($filename, 'F'); 

    return \Response::download($filename); 

} 

私は取得エラー? $scanも有効であり、どのようなあなたのfind関数の戻り値がない場合はforeachのは...

答えて

1

まずチェックトリックを行いません。

特定のIDのDBレコードが存在しない可能性があります。あなたのエラーから、それは明らかに、結果はオブジェクトではありませんでした(それは配列ですか?)。

var_dump($scan);を使用して検索結果を検査します。

このようなのでしょうか?

public function createpdf($id) { 
    $scan = Scan::find($id); 
    var_dump($scan); 
    if (!$scan) { 
     return; //or something 
    } 

モデル構造の問題と考えられる解決策:

Laravel Eloquent::Find() returning NULL with an existing ID

+0

にねえ、お返事に感謝。 var dumpは私にnullを与えます。これは私のIDを見つけることができないという意味ですか? – itvba

+0

確認する必要がある解決策へのリンクを使用して回答を更新しました。 – tilz0R

+0

あなたの答えをありがとう。私は「問題」を見つけました:あなたが長い間オンラインであれば、Laravelはあなたをログアウトするのが好きです。私は働かないページを何度も何度もリフレッシュしていました。私は再びログインすることにしました。それは動作します...助けてくれてありがとう! :) – itvba

関連する問題