2016-10-07 3 views
1

異なるテーブルに保持されている従業員データと個人詳細データを含むビューを取得しようとしています。関係が設定されているとうまく動作します。関係が利用できない場合は、空のフィールドを表示しますか?

しかし、従業員モデルにまだPersonalDetail行がない場合、個人詳細データの非オブジェクトのプロパティを取得しようとします。どのように私はnullフィールドを無視し、空のフィールドを私のブレードに返すように私のコントローラを書くのですか?コード:

従業モデル

public function PersonalDetail() { return $this->hasOne('App\PersonalDetail'); }

PersonalDetailモデル

public function Employee() 
{ 
    return $this->belongsTo('App\Employee'); 
} 

そして、私のコントローラ

public function show($employee) 
{ 
    $employee = Employee::find($employee); 
    $personaldetails = $employee->PersonalDetail; 
    return view('employees.show')->withEmployee($employee)->withPersonalDetail($personaldetails); 
} 

例のブレードアイテム

かそうでないあなただけをチェックしなければならない210
{{ $employee->personaldetail->address }} 

答えて

0

は次のとおりです。

{{ $employee->personaldetail ? $employee->personaldetail->address : '' }} 

UPDATE

あなたは、あなたがEmployeeモデルにメソッドを追加することができ、それをビュー上のレベルを変更したい場合このような:ビューの

public function getPersonalDetailAddress() 
{ 
    return $this->personaldetail ? $this->personaldetail->address : ''; 
} 

、その後:

{{ $employee->getPersonalDetailAddress() }} 
+0

コントローラからやり取りできる方法はありますか?またはモデルですか? ビュー・ブレードにはできるだけ少ない行数にしたいと思っています。 –

+0

私は私の答えにあなたを示します... –

+0

{{$ employee-> personaldetail-> address}}の行の代わりにこの行を追加してください – Komal

関連する問題