2017-11-02 2 views
-1

を扱う関係インスタンス例外を返さなければならないことは、従業員のモデルLaravel - 私はこの関係ここ</p> <p>に基づいて従業員の部門を表示したい

public function jobs(){ 
     return $this->hasMany(JobHistory::class,'employees_id','id'); 
    } 

    public function getDepartment() 
    { 
     $dep = JobHistory::where('employees_id', $this->id)->orderBy('start_date', 'desc')->first(); 

     return ($dep) ? $dep->department() : ''; 

    } 
JobHistoryテーブルスキーマここ

Schema::create('JobHistories', function (Blueprint $table) { 
     $table->increments('id'); 
     $table->integer('employees_id'); 
     $table->integer('Jobs_id'); 
     $table->integer('Departments_id'); 
     $table->date('start_date'); 
     $table->timestamps(); 
    }); 

されています

ここにJobHistoryモデルの機能があります

そして最後に、私はこのようなビューに表示したい:

@foreach($employee as $row) 
    <tr> 
     <td>{{$row->name}}</td> 
     <td> 
     {{$row->getDepartment->name or '-'}} 
     </td> 
    </tr> 
    @endforeach 

質問は従業員がまだジョブ履歴を持っていない場合は、例外を処理する方法、ありますか?私はブレードの検証でis_null()、empty()とisset()を試してみました。しかし、何も動作しません。あなたがここ三項演算 を使用することができます

答えて

0

{{isset($row->getDepartment->name) ? $row->getDepartment->name : '-'}} 

はあなたが

+0

'$行優先> getDepartment-> NAME'が – Hedam

+0

は、あなたがどのように説明することができます失敗_always_うことは働くことを願っていますあなたの問題を解決しますそれは失敗するでしょうか? @Hedam –

+0

私はこれを試してみました。これは、従業員がすでにジョブ履歴データを持っている場合にのみ機能します。空の場合は常に失敗します。 –

関連する問題