2017-12-23 5 views
1

내 laravel 응용 프로그램의 에서 File 테이블을 사용하여 인쇄 사용자 이름이 필요합니다. 이것은 User 모델과 File 모델 사이의 관계입니다.Laravel 5.2의 blade.php에서 ErrorException을 수정하는 방법

파일 모델

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

이 문제에 대해 아무런 생각이 없습니다. – DNK

+0

은'$ files'을 보내는 컨트롤러 코드를 공유합니까? – C2486

+2

아마도'user_id'는 null이거나 잘못된 사용자'id'가 있고'$ file-> user'는'null'을 반환합니다. 그래서, 당신은'null'에서'name'을 얻으려고합니다. – Laerte

답변

2

아마 user_idnull 또는 유효하지 않은 사용자 id$file->user 반환 null 있습니다. 그래서, 당신은 null에서 이름을 얻으려고합니다.

이것을 피하는 좋은 방법은 코드에 or을 사용하는 것입니다. 예는 : 라인의 모든 정보가 null 경우

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

-를 인쇄합니다.

관련 문제