我试图从数据库中获取值。我想得到id' 17'的名字。 我使用 Laravel 5.4和Tcpdf
这是我的控制器代码:
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并没有做到这一点..
答案 0 :(得分:1)
首先检查$scan
是否有效,以及find
函数返回的内容。
可能没有特定ID的DB记录。从您的错误中可以看出,结果不是对象(是数组吗?)。
使用var_dump($scan);
检查查找结果。
也许是这样的?
public function createpdf($id) {
$scan = Scan::find($id);
var_dump($scan);
if (!$scan) {
return; //or something
}
模型结构问题的可能解决方案: