2017-04-04 122 views
0

我試圖從數據庫中獲取值。我想獲得id'17'的名字。 我使用Laravel 5.4和TCPDFTCPDF從數據庫中獲取值

這是我的控制器代碼:

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); 

} 

的錯誤,我得到:Trying to get property of non-object

如何解決這個問題?一個foreach沒有辦法。

回答

1

首先檢查是否$scan甚至有效,你的find函數返回什麼。

有可能沒有特定ID的數據庫記錄。從你的錯誤,顯然,結果不是對象(是數組?)。

使用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轉儲給我null。這是否意味着它無法找到我的ID? – itvba

+0

我已經更新了我的答案,並提供了應該驗證的可能解決方案的鏈接。 – tilz0R

+0

感謝您的回答。我發現了'問題':如果你長時間在線,Laravel喜歡註銷你。我一遍又一遍地刷新了不工作的頁面。我決定再次登錄,它的工作原理...感謝您的幫助壽! :) – itvba