我想根据这种关系显示员工部门
这是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()。但没有任何作用。
答案 0 :(得分:-1)
您可以使用三元运算符 这是您的问题的解决方案
{{isset($row->getDepartment->name) ? $row->getDepartment->name : '-'}}
希望它对您有用