需要在我的laravel应用程序的user_id
表中使用File
打印用户名。这是User
模型与File
模型之间的关系。
文件模型
public function user()
{
return $this->belongsTo(User::class);
}
这是刀片文件
@if($files)
@foreach( $files as $file)
<div>
<div>
<span>
{{ $file->user->name }} //line 16
</span>
</div>
</div>
@endforeach
@endif
控制器
class PfilePDFController extends Controller
{
public function getPFPDF($id){
$files = File::where('project_id',$id)->get();
$pdf = PDF::loadView('pdf.projectfiles',['files'=>$files]);
return $pdf->stream('projectfiles.pdf');
}
}
但得到了这个错误:
ErrorException in bd52d760518dfb36a05daedee198eefcb7b87914.php line 16: Trying to get property of non-object (View: C:\Users\dnk\Desktop\acxian\resources\views\pdf\projectfiles.blade.php)
如何解决这个问题?
答案 0 :(得分:2)
可能user_id
为null
或用户id
无效,$file->user
返回null
。所以,你试图从null得到名字。
避免这种情况的好方法是在代码中使用or
。例如:
{{ $file->user->name or '-' }}
如果该行中的任何信息为-
,则会打印null
。