如何修复Laravel 5.2中blade.php中的ErrorException

时间:2017-12-23 17:27:47

标签: php laravel laravel-5 relationship blade

需要在我的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)

如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

可能user_idnull或用户id无效,$file->user返回null。所以,你试图从null得到名字。

避免这种情况的好方法是在代码中使用or。例如:

{{ $file->user->name or '-' }}

如果该行中的任何信息为-,则会打印null