Laravel - 必须返回关系实例异常处理

时间:2017-11-02 09:34:18

标签: laravel orm exception-handling

我想根据这种关系显示员工部门

这是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();
    });

这是员工模型

    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 Model

的功能
    public function department()
{
    return $this->belongsTo(Department::class, 'Departments_id', 'id');
}

最后我想在这样的视图中显示它:

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

问题是,如果员工没有任何工作经历,如何处理异常?我尝试在刀片验证上使用is_null(),empty()和isset()。但没有任何作用。

1 个答案:

答案 0 :(得分:-1)

您可以使用三元运算符 这是您的问题的解决方案

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

希望它对您有用