2017-12-23 28 views
1

私のlaravelアプリケーションのののテーブルを使用して、印刷ユーザー名が必要です。これは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を使用することです。例:

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

ラインのいずれかの情報がnullある場合、これは-を印刷します。

関連する問題