2017-04-04 94 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